Selenium-下拉选择框、弹出框、滚动条操作
1、下拉选择框操作
说明:下拉框就是HTML中<select>元素
1.1 如何操作下拉选择框?
# 导包from selenium import webdriver
from time import sleep
# 获取浏览器驱动对象
driver = webdriver.Firefox()# 最大化浏览器
driver.maximize_window()# 隐式等待
driver.implicitly_wait(30)# 打开url
url =r"D:\web自动化素材\课堂素材\注册A.html"
driver.get(url)"""
目标: 默认北京A
暂停2秒
1. 定位 A上海
2. 暂停2秒
3. 定位 A广州
""""""方式1:使用CSS定位"""
sleep(2)# 使用css定位来操作 A上海
driver.find_element_by_css_selector("[value='sh']").click()
sleep(2)# 使用css定位 A广州
driver.find_element_by_css_selector("[value='gz']").click()# 暂停 2
sleep(2)# 关闭驱动对象
driver.quit()========================================# 导包from selenium import webdriver
from time import sleep
# 获取浏览器驱动对象from selenium.webdriver.support.select import Select
driver = webdriver.Firefox()# 最大化浏览器
driver.maximize_window()# 隐式等待
driver.implicitly_wait(30)# 打开url
url =r"D:\web自动化素材\课堂素材\注册A.html"
driver.get(url)"""
目标: 使用Select类实现操作option选项
需求:
暂停2秒
1. 定位 A上海
2. 暂停2秒
3. 定位 A广州
步骤:
1. 导包 Select类
2. 获取Select对象
匿名:Select(element).select_by_index() # 通过下标
实名:select = Select(element)
调用:select.select_by_index()
注意:
1. Select类是通过select标签来控制其下的option元素
2. element:只能是select标签
""""""方式2:使用Select完成需求"""
el = driver.find_element_by_css_selector("#selectA")
sleep(2)"""通过 下标形式访问"""# 切换 上海# Select(el).select_by_index(1)# sleep(2)# Select(el).select_by_index(2)"""通过 value值形式访问"""# 获取Select引用对象# sel = Select(el)# 切换 上海# sel.select_by_value("sh")# sleep(2)# 切换 广州# sel.select_by_value("gz")"""通过 显示文本切换"""
sleep(2)# 切换 上海
Select(el).select_by_visible_text("A上海")
sleep(2)# 切换广州
Select(el).select_by_visible_text("A广州")# 暂停 2
sleep(2)# 关闭驱动对象
driver.quit()
1.2 Select类
说明:Select类是Selenium为操作select标签特殊封装的。
实例化对象: select = Select(element)
element:<select>标签对应的元素,通过元素定位方式获取,
例如:driver.find_element_by_id("selectA")
操作方法:
1. select_by_index(index)--> 根据option索引来定位,从0开始
2. select_by_value(value)--> 根据option属性 value值来定位
3. select_by_visible_text(text)--> 根据option显示文本来定位
1.2.1 Select类实现步骤分析
1. 导包 Select类 -->from selenium.webdriver.support.select import Select
2. 实例化Select类 select = Select(driver.find_element_by_id("selectA"))3. 调用方法:select.select_by_index(index)# 示例代码#导包 from selenium.webdriver.support.select import Select
select = Select(driver.find_element_by_id("selectA"))
select.select_by_index(2)# 根据索引实现
select.select_by_value("sh")# 根据value属性实现
select.select_by_visible_text("A北京")# 根据文本内容实现
2、弹出框处理
网页中常用的弹出框有三种
1. alert 警告框
2. confirm 确认框
3. prompt 提示框
2.1 案例
需求:打开注册A.html页面,完成以下操作:
1).点击 alert 按钮
2).关闭警告框
3).输入用户名:admin
# 导包from selenium import webdriver
from time import sleep
# 获取浏览器驱动对象
driver = webdriver.Firefox()# 最大化浏览器
driver.maximize_window()# 隐式等待
driver.implicitly_wait(30)# 打开url
url =r"D:\web自动化素材\课堂素材\注册A.html"
driver.get(url)"""
需求:
1. 点击 alert按钮
2. 输入用户名 admin
"""# 定位 alert按钮 并 点击
driver.find_element_by_css_selector("#alerta").click()# 切换 到alert# 默认返回的alert对话框对象
at = driver.switch_to.alert
# 处理 对话框# 同意
at.accept()# 获取文本# print("警告信息:", at.text)# 取消# at.dismiss()# 定位 用户名 输入admin
driver.find_element_by_css_selector("#userA").send_keys("admin")# 暂停 2
sleep(2)# 关闭驱动对象
driver.quit()# 问题1. 按钮被点击后弹出警告框,而接下来输入用户名的语句没有生效
2. 什么问题导致的?
3. 如何处理警告框?
2.2 弹出框处理方法
说明:Selenium中对处理弹出框的操作,有专用的处理方法;并且处理的方法都一样
1. 获取弹出框对象
alert = driver.switch_to.alert
2. 调用
alert.text --> 返回alert/confirm/prompt中的文字信息
alert.accept()--> 接受对话框选项
alert.dismiss()--> 取消对话框选项
2.3 示例代码
# 定位alerta按钮
driver.find_element_by_id("alerta").click()# 获取警告框
alert = driver.switch_to.alert
# 打印警告框文本 print(alert.text)# 接受警告框
alert.accept()# 取消警告框 # alert.dismiss()
3、滚动条操作
滚动条:一种可控制页面显示范围的组件
3.1 为什么要学习滚动条操作?
1. 在HTML页面中,由于前端技术框架的原因,页面元素为动态显示,元素根据滚动条的下拉而被加载
2. 页面注册同意条款,需要滚动条到最底层,才能点击同意
3.2 实现方式
说明:selenium中并没有直接提供操作滚动条的方法,但是它提供了可执行JavaScript脚本 的方法,所以我们可以通过JavaScript脚本来达到操作滚动条的目的。
1. 设置JavaScript脚本控制滚动条
js ="window.scrollTo(0,1000)"(0:左边距;1000:上边距;单位像素)2. selenium调用执行JavaScript脚本的方法
driver.execute_script(js)
3.3 案例
# 导包from selenium import webdriver
from time import sleep
# 获取浏览器驱动对象
driver = webdriver.Firefox()# 最大化浏览器
driver.maximize_window()# 隐式等待
driver.implicitly_wait(30)# 打开url
url ="https://www.baidu.com"
driver.get(url)"""
目标:滚动条操作
需求:
1、打开百度,输入csdn并点击百度一下
1. 启动暂停2秒
2. 滚动条拉倒最底下
"""
driver.find_element_by_css_selector("#kw").send_keys("csdn")
driver.find_element_by_css_selector("#su").click()
sleep(2)# 第一步 设置js控制滚动条语句
js ="window.scrollTo(0, 10000)"# 第二步 调用执行js语句方法
driver.execute_script(js)# 暂停 2
sleep(2)# 关闭驱动对象
driver.quit()
3.4 滚动条拉到最低和最顶层
# 最底层
js1 ="window.scrollTo(0,10000)"
driver.execute_script(js1)# 最顶层
js2 ="window.scrollTo(0,0)"
driver.execute_script(js2)
本文转载自: https://blog.csdn.net/weixin_44244493/article/details/126689327
版权归原作者 炫酷的腿毛! 所有, 如有侵权,请联系我们删除。
版权归原作者 炫酷的腿毛! 所有, 如有侵权,请联系我们删除。