Selenium下拉选择框select的处理

在使用Selenium做自动化测试的时候,难免会碰到下拉选择框,下面几种方式是比较常用的处理方式。
为了方便使用,我自己写了一个HTML的demo:
这里写图片描述
代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>selenium 处理 下拉框</title>
</head>
<body bgcolor="#f0f8ff">
<h3 align="center">selenium下拉框处理方法</h3>
<hr />
<td align="center">下拉框demo</td>
    <br />
    <select id="selectdemo" class="select" name="selectdemo">
        <option name="jiaolian" value="210101" selected="selected">教练人员</option>
        <option name="pingpang" value="210102">乒乓球球员</option>
        <option name="lanqiu" value="210103 ">篮球运动员</option>
        <option name="zuqiu" value="210103  ">足球运动员</option>
        <option name="youyong" value="210402">游泳运动员</option>
        <option name="tiaoshui" value="210403">跳水运动员</option>
    </select>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

1. 使用Webdriver提供的Select类的方法:
1)导入依赖

# 两种方法任选其一,都是指向同一个文件
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.select import Select
  • 1
  • 2
  • 3

2)Select类提供了3个方法用于选择下拉选择框中的其一

select_by_value(value)
select_by_index(index)
select_by_visible_text(text)
  • 1
  • 2
  • 3

比如选择篮球运动员选项:

# 实例化一个Select类的对象
selector = Select(driver.find_element_by_id("selectdemo"))

# 下面三种方法用于选择"篮球运动员"
selector.select_by_index("2")  # 通过index进行选择,index从0开始
selector.select_by_value("210103")  # 通过value属性值进行选择
selector.select_by_visible_text("篮球运动员")  # 通过标签显示的text进行选择
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

主要使用select_by_index()的时候,如果option中有index属性,会优先通过index属性选择
3)Select类还提供了一些用于取消选中的方法

deselect_all()  # 取消全选
deselect_by_value(value) # 通过value属性取消选择
deselect_by_index(index) # 通过index取消选择
deselect_by_visible_text(text) # 通过text取消选择
  • 1
  • 2
  • 3
  • 4

2. 先定位select 然后在定位option

# 定位到下拉选择框
selector = driver.find_element_by_id("selectdemo")
# selector = driver.find_element_by_xpath(".//*[@id='selectdemo']")

# 选择"篮球运动员"
selector.find_element_by_xpath("//option[@value='210103']").click()
# selector.find_elements_by_tag_name("option")[2].click()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3. 直接通过xpath层级标签定位

# 直接通过xpath定位并选择"篮球运动员"
driver.find_element_by_xpath(".//*[@id='selectdemo']/option[3]").click()
  • 1
  • 2

这是三种处理下拉选择框的思路,其他的就是定位元素的方法了。

  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用seleniumSelect类来处理下拉选择选择。首先,你需要导入Select类的模块。你可以使用以下方式导入: ``` from selenium.webdriver.support.ui import Select ``` 或者 ``` from selenium.webdriver.support.select import Select ``` 然后,你需要实例化一个Select类的对象,并通过该对象选择你想要的选项。你可以使用以下方法进行选择: - select_by_index(index):通过索引进行选择,索引从1开始。 - select_by_value(value):通过value属性值进行选择。 - select_by_visible_text(text):通过可见文本进行选择。 例如,如果你想通过索引选择第二个选项,你可以使用以下代码: ``` selector = Select(driver.find_element_by_id("Resolution")) selector.select_by_index(2) ``` 如果你想通过value属性值选择一个选项,你可以使用以下代码: ``` selector = Select(driver.find_element_by_id("Resolution")) selector.select_by_value("5") ``` 如果你想通过可见文本选择一个选项,你可以使用以下代码: ``` selector = Select(driver.find_element_by_id("Resolution")) selector.select_by_visible_text('1280x720') ``` 希望这个解答对你有所帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [selenium下拉选择Select实例化](https://blog.csdn.net/m0_58394647/article/details/130938821)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [selenium下拉选择处理](https://blog.csdn.net/weixin_30274627/article/details/95220694)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值