【Python+Selenium学习系列5-1】Selenium特殊元素定位之-下拉框元素定位Select操作

背景

对于页面中的下拉框选项,使用selenium的select模块可以进行操作,并精确定位下拉选项及所有的option值。
select模块方法一共分为三个部分:option方法、选中方法、取消选中方法,下面具体看一下这三个部分

1、select模块中关于option选项的方法:

  • options:返回所有的option选项
  • all_selected_options:返回所有选中的option选项
  • first_selected_option:返回第一个选中的option选项

自定义一个下拉框页面select元素.html

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>select模块练习</title>
</head>
<body>
    <select id="s">
        <option value="o1" id="oo">星期一</option>
        <option value="o2">星期二</option>
        <option value="o3">星期三</option>
        <option value="o4">星期四</option>
        <option value="o5">星期五</option>
    </select>
</body>
</html>

代码示例定位:

from selenium.webdriver.common.by import By
#引用'webdriver'模块
from selenium import webdriver
#引用'Select'模块
from selenium.webdriver.support.select import Select
import time
#引用谷歌浏览器
driver = webdriver.Chrome()
#导航到select元素.html网页
driver.get("E:/Pyhthon Developer/Python/Selenium/select元素.html")
time.sleep(3)
#定位需要元素
elem = driver.find_element(By.ID,"s")
print(Select(elem).options)
print(Select(elem).all_selected_options)
print(Select(elem).first_selected_option)

driver.quit()

二、选中元素的方法 

 Web页面中经常会遇到下拉框选项,Select模块提供了对标准Select下拉框的多种操作方法。

选择Select元素值的三种方法:

  1. 通过“select_by_index”方式获取下拉框选项
  2. 通过“select_by_value”方式获取下拉框选项
  3. 通过“select_by_visible_text”方式获取下拉框选项

选择获取反选下拉框元素首先要实例化select元素

from selenium.webdriver.support.ui import Select # 引入包

select_element=Select(element) # 实例化select

2.1、通过“select_by_index”方式获取下拉框选项

select_by_index(index值),根据下拉菜单项index来选择某项,index默认从0开始
 

2.2、通过“select_by_value”方式获取下拉框选项

select_by_value(value值),根据下拉菜单项value属性值来选择某项
 

2.3、通过“select_by_visible_text”方式获取下拉框选项

select_by_visiable_text(text值),根据下拉菜单中所显示的文本内容来选择某项

### 使用 Selenium 定位 Ant Design Vue 中的 `ant-select-selection-overflow` 元素 为了使用 Selenium 准确地定位到具有特定类名 `ant-select-selection-overflow` 的元素,可以采用多种策略来实现这一目标。通常情况下,推荐的方法是通过 CSS 选择器或 XPath 表达式来进行定位。 #### 方法一:基于CSS选择器的方式 如果页面上只有一个这样的组件实例,则可以直接利用该唯一存在的类作为标识符: ```python from selenium import webdriver driver = webdriver.Chrome() element = driver.find_element_by_css_selector(".ant-select-selection-overflow") ``` 这种方法简单明了,适用于大多数场景下的单个匹配项检索操作[^1]。 #### 方法二:组合多个属性进行更精确的选择 考虑到实际应用环境中可能存在相同样式应用于不同控件的情况,因此可以通过结合其他父级标签或其他特性进一步缩小范围,提高选取准确性: ```python from selenium.webdriver.common.by import By # 假设此下拉框位于表单项内,并且有特定label文字关联 locator = (By.CSS_SELECTOR, "div.ant-row-space > div:nth-child(2) .ant-form-item-label label[title='职位名称'] ~ * .ant-select-selection-overflow") elements = driver.find_elements(*locator) if elements: target_element = elements[0] else: raise ValueError("未找到符合条件的目标元素") ``` 这里假设了结构上的某些特点,比如预期中的HTML布局形式以及相关联的文字提示等信息,从而构建了一个更为复杂的查询语句以确保获取的是所需的那个具体对象。 #### 方法三:借助XPath表达式的灵活性 当面对更加复杂或者不确定性的DOM树时,还可以考虑运用XPath的强大功能来进行路径导航和条件过滤: ```python xpath_expression = "//span[contains(@class,'ant-select-selection-overflow')]" target_element_via_xpath = driver.find_element(By.XPATH,xpath_expression ) ``` 这种方式允许开发者根据实际情况灵活调整查询逻辑,甚至可以在必要时候引入额外的判断依据(如文本内容、子节点特征等),以便更好地适应各种可能的变化情形。 无论选用哪种方式,在编写自动化测试脚本之前都应该先仔细研究待测网页的具体情况,包括但不限于源码结构、动态加载机制等因素的影响,这样才能制定出最合适的解决方案并保证最终执行效果的理想程度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值