Selenium Select下拉框

在web自动化测试中,经常会遇到下拉框,对列出的选项进行选择,或者判断选择的选项,本文将介绍如何使用Selenium去操作下拉框,实现自动化测试。

测试页面

URL: http://sahitest.com/demo/selectTest.htm

Select方法

使用WebElement类的send_keys(value)方法也可以选择下拉框(select标签)的值,但它只能使用选项的value值来定位:

self.driver.get("http://sahitest.com/demo/selectTest.htm")
ele = self.driver.find_element_by_id('s3Id')
print(ele.text) # 打印select所有选项值
ele.send_keys("o2val") # 选择value=o2val 的选项
print(ele.get_attribute("value")) # 打印所选择的value值

结果:

o1
o2
o3
    With spaces
    With nbsp
o2val

select类所有方法:

  1. select_by_index(index):通过选项index选择
  2. select_by_value(value):通过选项value值选择
  3. select_by_visible_text(text):过显示的文本选择
  4. deselect_by_index(index):取消选择,用于多选
  5. deselect_by_value(value):取消选择,用于多选
  6. deselect_by_visible_text(text):取消选择,用于多选
  7. deselect_all():全部取消,用于多选
  8. options:所有选项
  9. first_selected_option:第一个选择的选项(多选情况下)或者当前选择的选项(单选)
  10. all_selected_options:所有已经选择的选项

选择

select_by_index、select_by_value、select_by_visible_text三种方法选择

first_selected_option.text返回当前所选择的选项值

self.driver.get("http://sahitest.com/demo/selectTest.htm")
ele = self.driver.find_element_by_id('s3Id')
selected_element = Select(ele)  # 实例化Select
selected_element.select_by_index(1)
# for select in selected_element.all_selected_options:
#     print(select.text)
print(selected_element.first_selected_option.text) # 打印当前选择的选项值
sleep(1)
selected_element.select_by_value("o2val")
print(selected_element.first_selected_option.text)
sleep(1)
selected_element.select_by_visible_text("o3")
print(selected_element.first_selected_option.text)
sleep(1)

结果:

o1 
o2 
o3

取消选择

取消选择deselect不能用于下拉框选择,只能用于多选,即属性multiple="multiple"的select标签。

取消选择有deselect_by_indexdeselect_by_valuedeselect_by_visible_textdeselect_all四种方法

all_selected_options返回所有已选择的选项

self.driver.get("http://sahitest.com/demo/selectTest.htm")
## 多选
ele2 = self.driver.find_element_by_id('s4Id')
selected_element2 = Select(ele2)  # 实例化Select
selected_element2.select_by_index(1)
selected_element2.select_by_index(2)
selected_element2.select_by_index(3)
print("######")
for select in selected_element2.all_selected_options:
    print(select.text)

print("######")
selected_element2.deselect_by_index(1)
for select in selected_element2.all_selected_options:
    print(select.text)

print("######")
selected_element2.deselect_by_value("o2val")
for select in selected_element2.all_selected_options:
    print(select.text)

print("######")
selected_element2.deselect_by_visible_text("o3")
for select in selected_element2.all_selected_options:
    print(select.text)

结果:

######
o1
o2
o3
######
o2
o3
######
o3
######
--THE END--

系列文章

1、Selenium Webdriver 架构
2、Selenium Web元素定位方法
3、Selenium Web元素操作
4、Web自动化测试:xpath & CSS Selector定位
5、Selenium ActionChains、TouchAction方法
6、Selenium switch_to方法
7、Selenium Select下拉框
8、Selenium多浏览器测试
9、Selenium执行JavaScript脚本
10、selenium/appium 等待方式介绍
11、Selenium Grid:在多个主机上并行执行自动化脚本


欢迎关注公众号:「测试开发小记」及时接收最新技术文章!

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值