文章目录
- 一、下拉框
- 1.1
下拉选择框处理方式
- 1.1.1
方法2:使用
Select类-案例
- 1.1.1
- 二、弹出框
- 2.1
弹出框类型
- 2.2
JS弹出框处理-案例
- 2.1
- 三、滚动条
- 3.1滚动条操作-实现方法
- 3.2
滚动条操作-案例
- 3.3
滚动条操作-总结
- 1.1
一、下拉框
1、下拉框分类:
- 自定义:通过div等布局标签设计的下拉框。
- HTML原生态下拉框:
+。
2、下拉框处理方式:
- ①无论是自定义还是HTML原生态的下拉框都可以直接通过元素定位的方式直接完成选项选择。
- ②针对于原生态标签的下拉框提供了Select对象实现选项选择固定方法
如通过元素定位方式实现选项选择会出现大批量的元素定位,而通过Select对象对于select下拉框实现选项选择只需要定位一次操作繁琐
影响脚本运行效率
3、select标签的下拉框选择方法:
- 分析是否是select的下拉框
- 获取所要选择下拉框对象
- 执行选项的选择
/>1.1
方法1:元素定位
思路:
点击广州driver.find_element(By.CSS_SELECTOR,"[value='gz']").click()sleep(2)#
上海driver.find_element(By.CSS_SELECTOR,"[value='sh']").click()sleep(2)#
北京driver.find_element(By.CSS_SELECTOR,"[value='bj']").click()
1.1.2方法2:使用
Select类
1.导包Select类-->fromselenium.webdriver.support.selectimportSelect2.实例化Select类
select=Select(element)3.调用方法:
select.select_by_index(index)说明:
Select类是Selenium为操作select标签特殊封装的。
实例化对象:
select=Select(element)element:<select>标签对应的元素,
例如:
driver.find_element_by_id("selectA")操作方法:1.select.select_by_index(index)-->根据option索引来定位,
从0开始2.select.select_by_value(value)-->根据option属性
value值来定位3.select.select_by_visible_text(text)-->根据option显示文本来定位,显示标签中的文字
注意:1.Select类是通过select标签来控制其下的option元素2.element:只能是select标签
1.2
Select类-案例
fromtimeimportsleepfromseleniumimportwebdriverfromselenium.webdriver.common.byimportByfromselenium.webdriver.support.selectimportSelect#1、获取浏览器
driver=webdriver.Chrome()#2、打开url
driver.get("file:///Users/lgy/Documents/fodder/web/%E6%B3%A8%E5%86%8CA.html")#3、再定3s-->代替测试步骤
#①定位下拉框元素
select
el=driver.find_element(By.ID,"selectA")#②实例化Select对象
select=Select(el)#使用下标定位广州
select.select_by_index(2)sleep(2)#使用value定位上海
select.select_by_value("sh")#使用文本定位
北京
sleep(2)select.select_by_visible_text("北京")#4、关闭浏览器
sleep(3)driver.quit()/>
二、弹出框
为什么要处理弹出框?
-->
如果页面操作过程中,有弹窗出现,不处理,无法继续对页面操作。
2.1
弹出框类型
1、自定义弹出框
- 可以直接通过web浏览器开发者工具查看到具体的元素信息
- 处理方式:直接元素定位后,点击确定或取消即可。
2、JS弹出框
- 通过JS函数实现,通过web浏览器开发者工具无法查看到元素信息
- 常见S弹出框形式:alert(警告框)、confirm(确认框)、prompt(提示框)
- 不能通过元素定位进行处理
<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><body><inputtype="button"value="alert警告框"onclick="alert('我是警告框')"><inputtype="button"value="confirm确认框"onclick="confirm('我是确认框')"><inputtype="button"value="prompt提示框"onclick="prompt('我是提示框')"></body></html>2.2
JS弹出框处理方法
说明:获取弹出框对象,对于警告框、确认框、警示框都一样
alert
取消弹出框选项(确认框没有取消按钮,取消方法一样生效)
提示:无论以上哪个对话框,都可以使用取消、同意,因为调用的是后台的事件,根页面显示的按钮数量无关。
注意:1.driver.switch_to.alert方法适合以上三种类型对话框,调用时没有括号2.获取文本的方法,调用时没有括号
如:alert.text3.在项目中不是所有的小窗口都是以上三种对话框。
2.3
JS弹出框处理-案例
fromtimeimportsleepfromseleniumimportwebdriverfromselenium.webdriver.common.byimportBy#1、获取浏览器
driver=webdriver.Chrome()#2、打开url
driver.get("file:///Users/lgy/Documents/fodder/web/%E6%B3%A8%E5%86%8CA.html")#3、暂停3s—>代替测试步骤
#点击页面alert按钮
driver.find_element(By.ID,"alerta").click()time.sleep(2)#①分析是否是js弹出框,通过右键检查,无检查选项则获取弹出框对象的方式处理
#②获取弹出框对象
alert=driver.switch_to.alert#获取弹出框文本
print(alert.text)#点击弹出框确定按钮
alert.accept()time.sleep(3)#点击弹出框取消按钮
alert.dismiss()#取消
#输入用户名
driver.find_element(By.CSS_SELECTOR,"#userA").send_keys("admin")#4、关闭浏览器
sleep(3)driver.quit()/>
三、滚动条
1、滚动条:
一种可控制页面显示范围的组件。
2、为什么要学习滚动条操作?
1、在HTML页面中,页面元素为动态显示,
3、在web自动化中有些特殊场景,如:滚动条拉倒最底层,指定按钮才可用。
3.1滚动条操作-实现方法
说明:
selenium中并没有直接提供操作滚动条的方法,
但是它提供了可执行JavaScript脚本的方法,
所以我们可以通过JavaScript脚本来达到操作滚动条的目的。
#左边距
-->垂直滚动条
js="window.scrollTo(0,1000)"#(左边距=0,左边距不动。
上边距=1000,离上边距1000像素。
单位像素)
#selenium调用执行JavaScript脚本的方法
driver.execute_script(js)/>3.2
滚动条操作-案例
#导包
fromseleniumimportwebdriverfromtimeimportsleep#获取浏览器驱动对象
driver=webdriver.Chrome()#最大化浏览器
driver.maximize_window()#隐式等待
driver.implicitly_wait(30)#打开url
url=r"https://news.baidu.com/"driver.get(url)"""目标:滚动条操作
"""
sleep(2)#第一步
设置js控制滚动条语句
js="window.scrollTo(0,第二步
调用执行js语句方法
driver.execute_script(js)#2
sleep(2)#关闭驱动对象
driver.quit()3.3
滚动条操作-总结
1为什么要操作滚动条在web自动化中有些特殊场景,如:滚动条拉倒最底层,指定按钮才可用。
2如何操作
如:js="window.scrollTo(0,10000)"0:左边距--》水平滚动条10000:上边距-->垂直滚动条
第二步:调用执行js方法,将设置js语句传入方法中
方法:driver.execute_script(js)3说明
在selenium中没有直接提供定位滚动条组件方法,但是它提供了执行js语句方法,可以通过js语句来控制滚动条操作。


