针对 select 标签的下拉列表,Selenium 提供了 Select 类进行操作:
from selenium.webdriver.support.ui import Select
Select 类常用方法:
| 序号 | 方法/属性 | 描述 |
|---|---|---|
| 1 | select_by_value() | 根据值选择 |
| 2 | select_by_index() | 根据索引选择(从1开始) |
| 3 | select_by_visible_text() | 根据文本选择 |
| 4 | deselect_by_value() | 根据值反选 |
| 5 | deselect_by_index() | 根据索引反选 |
| 6 | deselect_by_visible_text() | 根据文本反选 |
| 7 | deselect_all() | 反选所有 |
| 8 | options | 获取所有选项 |
| 9 | all_selected_options | 获取所有选中的选项 |
| 10 | first_selected_option | 获取第一个选中的选项 |
select 单选框
对于 select 单选框,操作比较简单,创建 Select 对象后,直接使用 Select 类中的方法选择即可。
实例应用

from selenium import webdriver
from time import sleep
from selenium.webdriver.support.ui import Select
driver = webdriver.Chrome() # 打开浏览器
driver.get("http://sahitest.com/demo/selectTest.htm") # 跳转至测试页面
sleep(1)
select_element = Select(driver.find_element_by_id("s1")) # 创建Select对象
select_element.select_by_value("46") # 根据值选择
sleep(1)
select_element.select_by_index(4) # 根据索引选择(从1开始)
sleep(1)
select_element.select_by_visible_text("Home Phone") # 根据文本选择
sleep(1)
driver.quit()
select 多选框
对于 select 多选框,如果需要选中某几个选项,那么,要注意清除原来已经选中的选项。
实例应用

from selenium import webdriver
from time import sleep
from selenium.webdriver.support.ui import Select
driver = webdriver.Chrome() # 打开浏览器
driver.get("http://sahitest.com/demo/selectTest.htm") # 跳转至测试页面
sleep(1)
select_element = Select(driver.find_element_by_id("s4Id")) # 创建Select对象
select_element.deselect_all()
select_element.select_by_value("o1val") # 根据值选择
sleep(1)
select_element.select_by_index(4) # 根据索引选择(从1开始)
sleep(1)
select_element.select_by_visible_text("o2") # 根据文本选择
sleep(1)
# 打印所有选项的文本
for option in select_element.options:
print(option.text)
sleep(2)
driver.quit()
总结

1965

被折叠的 条评论
为什么被折叠?



