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类所有方法:
- select_by_index(index):通过选项index选择
- select_by_value(value):通过选项value值选择
- select_by_visible_text(text):过显示的文本选择
- deselect_by_index(index):取消选择,用于多选
- deselect_by_value(value):取消选择,用于多选
- deselect_by_visible_text(text):取消选择,用于多选
- deselect_all():全部取消,用于多选
- options:所有选项
- first_selected_option:第一个选择的选项(多选情况下)或者当前选择的选项(单选)
- 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_index、deselect_by_value、deselect_by_visible_text、deselect_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
######
文章标题:Selenium Select下拉框
本文作者:hiyo
本文链接:https://hiyong.gitee.io/posts/selenium-select/
欢迎关注公众号:「测试开发小记」及时接收最新技术文章!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 百万级群聊的设计实践
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期