首页 > 其他分享 >selenium实战

selenium实战

时间:2024-09-20 19:04:29浏览次数:11  
标签:实战 webdriver selenium window dx print import

1、文本框、密码框、输入、点击、 按钮

网址:http://cms.duoceshi.cn/manage/login.do

from selenium import webdriver
from time import *
dx=webdriver.Chrome()
dx.get("http://cms.duoceshi.cn/manage/login.do")
dx.maximize_window()
sleep(2)
dx.find_element_by_id("userAccount").send_keys("admin")
sleep(2)
dx.find_element_by_id("loginPwd").send_keys("123456")
sleep(2)
dx.find_element_by_id("loginBtn").click()

2、链接
网址:https://www.baidu.com/
from selenium import webdriver
from time import *
dx=webdriver.Chrome()
dx.get("http://baidu.com")
dx.maximize_window()
sleep(2)
dx.find_element_by_link_text("hao123").click()

3、隐藏框
from selenium import webdriver
from time import *
from selenium.webdriver.common.action_chains import ActionChains
dx=webdriver.Chrome()
dx.get("http://baidu.com")
dx.maximize_window()
sleep(2)
wz=dx.find_element_by_link_text("更多")
ActionChains(dx).move_to_element(wz).perform()
dx.find_element_by_xpath('//*[@id="s-top-more"]/div[2]/a/div').click()

更多案例:
from time import *
from selenium.webdriver.common.action_chains import ActionChains
dx=webdriver.Chrome()
dx.get("http://baidu.com")
dx.maximize_window()
sleep(2)
wz=dx.find_element_by_id("s-usersetting-top")
ActionChains(dx).move_to_element(wz).perform()
dx.find_element_by_link_text("关闭预测").click()

4、获取元素的文本(text)
from selenium import webdriver
from time import *
from selenium.webdriver.common.action_chains import ActionChains
dx=webdriver.Chrome()
dx.get("http://baidu.com")
dx.maximize_window()
sleep(2)
wb=dx.find_element_by_link_text("登录").text
if wb=="登录":
print("断言成功")
else:
print("断言失败")

5、断言(if 、assert)
(1)if断言:
from selenium import webdriver
from time import *
from selenium.webdriver.common.action_chains import ActionChains
dx=webdriver.Chrome()
dx.get("http://baidu.com")
dx.maximize_window()
sleep(2)
wb=dx.find_element_by_link_text("登录").text
if wb=="登录":
print("断言成功")
else:
print("断言失败")

(2)assert 断言
from selenium import webdriver
from time import *
from selenium.webdriver.common.action_chains import ActionChains
dx=webdriver.Chrome()
dx.get("http://baidu.com")
dx.maximize_window()
sleep(2)
wb=dx.find_element_by_link_text("登录").text
assert wb=="登录qq"
print(1)
常用的场景:日志

6、获取窗口的大小(get_window_size())
from selenium import webdriver
from time import *
from selenium.webdriver.common.action_chains import ActionChains
dx=webdriver.Chrome()
dx.get("http://baidu.com")
dx.maximize_window()
sleep(2)
m=dx.get_window_size()
print(m)

一、切换窗口
(1) 获取当前句柄(current_window_handle)
获取所有的句柄 (window_handles)
from selenium import webdriver
from time import *
from selenium.webdriver.common.action_chains import ActionChains
dx=webdriver.Chrome()
dx.get("http://baidu.com")
print(dx.title)
dx.maximize_window()
sleep(2)
w='window.open("http://jd.com")'
dx.execute_script(w)
print(dx.title)
jb=dx.current_window_handle
print(jb)
jbs=dx.window_handles
print(jbs)

(2)通过句柄切换窗口(两个窗口的排序0,1)
from selenium import webdriver
from time import *
from selenium.webdriver.common.action_chains import ActionChains
dx=webdriver.Chrome()
dx.get("https://www.baidu.com/")
print(dx.title)
dx.maximize_window()
sleep(2)
w='window.open("https://www.jd.com/")'
dx.execute_script(w)
print(dx.title)
jb=dx.current_window_handle #获取当前窗口句柄
print(jb) #CDwindow-279E9F0F55B7B2F2AFA9245B9A580D86
jbs=dx.window_handles #获取所有窗口句柄
print(jbs)
dx.switch_to.window(jbs[1])
sleep(2)
dx.find_element_by_link_text("我的订单").click()

(2)通过句柄切换窗口(三个窗口的排序0,2,1)

from selenium import webdriver
from time import *
from selenium.webdriver.common.action_chains import ActionChains
dx=webdriver.Chrome()
dx.get("https://www.baidu.com/")
print(dx.title)
dx.maximize_window()
sleep(2)
w='window.open("https://www.jd.com/")'
dx.execute_script(w)
print(dx.title)
w1='window.open("https://www.hao.com/")'
dx.execute_script(w1)
jb=dx.current_window_handle #获取当前窗口句柄
print(jb) #CDwindow-279E9F0F55B7B2F2AFA9245B9A580D86
jbs=dx.window_handles #获取所有窗口句柄
print(jbs)
dx.switch_to.window(jbs[2])
sleep(2)
dx.find_element_by_link_text("我的订单").click()

(3)如果有多个窗口通过for 循环判断,确定窗口
from selenium import webdriver
from time import *
from selenium.webdriver.common.action_chains import ActionChains
dx=webdriver.Chrome()
dx.get("https://www.baidu.com/")
print(dx.title)
dx.maximize_window()
sleep(2)
w='window.open("https://www.jd.com/")'
dx.execute_script(w)
print(dx.title)
w1='window.open("https://www.hao.com/")'
dx.execute_script(w1)
jb=dx.current_window_handle #获取当前窗口句柄
print(jb) #CDwindow-279E9F0F55B7B2F2AFA9245B9A580D86
jbs=dx.window_handles #获取所有窗口句柄
for i in jbs:
dx.switch_to.window(i)
if "京东(JD.COM)-正品低价、品质保障、配送及时、轻松购物!" in dx.title:
break
print(dx.title)
sleep(2)
dx.find_element_by_link_text("我的订单").click()

二、下拉框

网址:
https://yz.chsi.com.cn/zsml/zyfx_search.jsp

from selenium import webdriver
from time import *
from selenium.webdriver.support.select import Select
dx=webdriver.Chrome()
dx.get("https://yz.chsi.com.cn/zsml/zyfx_search.jsp")
print(dx.title)
dx.maximize_window()
sleep(2)
wz=dx.find_element_by_id("ssdm")

Select(wz).select_by_index(2) #通过索引选择

Select(wz).select_by_value("12") #通过value值选择

Select(wz).select_by_visible_text("(12)天津市") #通文本内容定位

标签:实战,webdriver,selenium,window,dx,print,import
From: https://www.cnblogs.com/hutongxue/p/18423082

相关文章

  • selenium编写用例
    自动化用例案例:http://cms.duoceshi.cn/manage/login.do一、编写用例(1)登录fromseleniumimportwebdriverfromtimeimport*fromselenium.webdriver.common.keysimportKeysdx=webdriver.Chrome()url="http://cms.duoceshi.cn/manage/login.do"dx.get(url......
  • 实战教程:Minio与etcd本地部署 + Milvus本地数据库配置(亲测成功)
    一.minio本地部署1.获取安装包wgethttps://dl.minio.io/server/minio/release/linux-amd64/miniowgethttps://dl.min.io/client/mc/release/linux-amd64/mcchmod+xminiochmod+xmc#命令移到系统路径直接调用命令cpminio/use/local/bincpmc/use/local/......
  • 自然语言处理(NLP)实战项目
    自然语言处理(NLP)实战项目可以涵盖多个领域和应用场景,以下是一些具体的实战项目示例,涵盖了从基础到高级的不同层次:1.情感分析(SentimentAnalysis)目标:识别和分类文本中的情感倾向(正面、负面、中性)。应用场景:社交媒体监控、客户反馈分析、产品评论分析。技术栈:数据收集:使用......
  • 04-Mysql索引优化实战一
    示例表CREATETABLE`employees`(`id`int(11)NOTNULLAUTO_INCREMENT,`name`varchar(24)NOTNULLDEFAULT''COMMENT'姓名',`age`int(11)NOTNULLDEFAULT'0'COMMENT'年龄',`position`varchar(20)NOTNULLDEFAULT......
  • 05-Mysql索引优化实战二
    分页查询优化1示例表:2CREATETABLE`employees`(3 `id`int(11)NOTNULLAUTO_INCREMENT,4 `name`varchar(24)NOTNULLDEFAULT''COMMENT'姓名',5 `age`int(11)NOTNULLDEFAULT'0'COMMENT'年龄',6 `position`varchar(20)NOTNUL......
  • 3D游戏开发实战:QML与虚幻引擎
    3D游戏开发实战:QML与虚幻引擎使用AI技术辅助生成QT界面美化视频课程QT性能优化视频课程QT原理与源码分析视频课程QTQMLC++扩展开发视频课程免费QT视频课程您可以看免费1000+个QT技术视频免费QT视频课程QT统计图和QT数据可视化视频免费看免费QT视频课程QT性能优化视频......
  • MyFlash MySQL数据恢复实战案例:将MySQL Docker容器误删除DELETE的数据进行闪回恢复
    创建MySQL容器mkdir-p{data,conf.d}cat>conf.d/log-bin.cnf<<-EOF[mysqld]log_bin=mysql-binlogserver_id=1EOFdockerrm-fmysqldockerrun-d--namemysql-eMYSQL_ROOT_PASSWORD=123456-p3306:3306-v/etc/localtime:/etc/localtime-v./data:......
  • 【实战篇】MySQL是怎么保证高可用的?
    背景在一个主备关系中,每个备库接收主库的binlog并执行。正常情况下,只要主库执行更新生成的所有binlog,都可以传到备库并被正确地执行,备库就能达到跟主库一致的状态,这就是最终一致性。但是,MySQL要提供高可用能力,只有最终一致性是不够的。主备切换可能是一个主动运维动......
  • 【实战篇】MySQL是怎么保证主备一致的?
    MySQL主备的基本原理如图1所示就是基本的主备切换流程。在状态1中,客户端的读写都直接访问节点A,而节点B是A的备库,只是将A的更新都同步过来,到本地执行。这样可以保持节点B和A的数据是相同的。当需要切换的时候,就切成状态2。这时候客户端读写访问的都是节......
  • 多模态项目实战班,快速实践多模态项目流程输出相应项目的能力
    科技飞速发展的时代,多模态项目已经成为人工智能和机器学习领域的热门话题。这些项目融合了视觉、听觉、语言等多种信息源,以实现更深层次的理解和交互。本篇文章将深入探讨一个为期3000字的多模态项目实战班,帮助你快速掌握项目流程,并具备输出相应项目的能力。一、引言多模......