Selenium之下拉选择框、 弹出框、 滚动条操作

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显示文本来定位

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)

# 需求: 使用‘注册A.html’页面, 完成对城市的下拉框的操作
# 1).选择‘广州’
# 2).暂停2秒, 选择‘上海’
# 3).暂停2秒, 选择‘北京’
from time import sleep
from selenium import webdriver
#导包
from selenium.webdriver.support.select import Select
driver = webdriver.Chrome()
driver.get("D:\python\web自动化\显式、隐式等待\注册A.html")
select = Select(driver.find_element_by_id("selectA"))
select.select_by_index(2) # 根据索引实现
sleep(2)
select.select_by_value("sh") # 根据value属性实现
sleep(2)
select.select_by_visible_text("A北京") # 根据文本内容实现
sleep(2)
driver.quit()

弹出框处理

为什么需要处理弹框

如果页面出现弹框不进行处理,那么接下来的操作将不生效

网页中常用的弹出框有三种

  • 1. alert 警告框
  • 2. confirm 确认框
  • 3. prompt 提示框

弹出框处理方法

Selenium中对处理弹出框的操作, 有专用的处理方法; 并且处理的方法都一样

1. 切换到对话框
alert = driver.switch_to.alert

2. 处理对话框

  • alert.text                         返回alert/confirm/prompt中的文字信息
  • alert.accept()                  同意对话框选项
  • alert.dismiss()                取消对话框选

注:无论以上哪个对话框都可以使用同意、取消,因为调用的是后台的事件,跟页面显示的按钮数量无关;

# 需求: 打开注册A.html页面, 完成以下操作:
# 1).点击 alert 按钮
# 2).关闭警告框
# 3).输入用户名: admin
from time import sleep
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("D:\python\web自动化\显式、隐式等待\注册A.html")
# 定位alerta按钮
driver.find_element_by_id("alerta").click()
sleep(2)
# 获取警告框
alert = driver.switch_to.alert
# 打印警告框文本
print(alert.text)
sleep(2)
# 接受警告框
alert.accept()
sleep(2)
# 取消警告框
alert.dismiss()
sleep(2)
driver.find_element_by_css_selector("#userA").send_keys("admin")
sleep(2)
driver.quit()

滚动条操作

selenium中并没有直接提供操作滚动条的方法, 但是它提供了可执行JavaScript脚本的方法, 所以我们可以通过JavaScript脚本来达到操作滚动条的目的

1. 设置JavaScript脚本控制滚动条
        js = "window.scrollTo(0,1000)"(0:左边距; 1000:上边距; 单位像素)
2. selenium调用执行JavaScript脚本的方法
        driver.execute_script(js)

# 需求: 打开注册页面A, 暂停2秒后, 滚动条拉到最底层
from time import sleep
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("D:\python\web自动化\显式、隐式等待\注册A.html")
sleep(2)
# 最底层
js1 = "window.scrollTo(0,10000)"
driver.execute_script(js1)
sleep(2)
# 最顶层
js2 = "window.scrollTo(0,0)"
driver.execute_script(js2)
sleep(2)
driver.quit()

 

上一篇:计时器(秒表)(一)


下一篇:线程的静态方法