Python+selenium 定位非select类型的下拉框和定位时间控件

1、最近遇到一个下拉框:

 

再看一下网页上的结构:

 

 

当我们点击这个公告类型的时候,会出现拉下框,并且激活下拉菜单,我们再看一下点击后的结构:

 

因此,我的思路就是通过点击下拉菜单的按钮,激活下拉菜单后,在进行元素定位,我们看一下代码:

# 点击请假类型(激活下拉框)
driver.find_element_by_class_name('ant-select-selection__placeholder').click()
time.sleep(1)

# 生产随机数
key = random.randrange(1, 5)
# 根据随机数选择下拉框
if key == 1:
    self.param.find_element_by_xpath('//*[@class="ant-select-dropdown-menu-item"][1]').click()
elif key == 2:
     self.param.find_element_by_xpath('//*[@class="ant-select-dr
### 使用 Selenium 进行下拉框元素的定位 对于不同类型下拉框Selenium 提供了多种方法来实现其定位与操作。 #### 静态 Select 类型下拉框 当处理 HTML 中 `<select>` 标签定义的标准下拉列表时,可以直接利用 `Select` 类来进行交互。通过导入 `Select` 并调用相应的方法如按索引、值或可见文本选取选项: ```python from selenium.webdriver.support.ui import Select # 假设已经有一个 WebDriver 实例 driver 目标 select 元素的选择器 selector dropdown = Select(driver.find_element("css selector", "your_selector")) dropdown.select_by_visible_text('Option Text') # 根据显示的文字选择项[^3] ``` #### 动态加载的标准下拉菜单 针对那些不是基于 `<select>` 的动态组件,则可能需要依赖于更灵活的方式比如 XPath 来精确定位特定条目。下面是一个例子展示了怎样找到第一个匹配给定类名的项目并模拟点击事件打开它: ```python dynamic_dropdown_item = driver.find_element( "xpath", '//*[@class="ant-select-dropdown-menu-item"][1]' ).click() # 成功执行此命令意味着找到了预期的第一个可选项目[^2] ``` 另外,在某些情况下,如果页面上的控件是由 JavaScript 控制展开收起的话,还需要先触发一次鼠标悬停或其他形式的动作使隐藏的内容变得可见之后再继续下一步骤的操作。 #### XPATH 定位方式的应用实例 为了应对更加复杂的场景,XPath 是一种强大的工具,允许按照文档结构深入挖掘节点关系从而获取所需对象。例如要访问某个具有唯一属性组合的输入框关联起来的一组建议性提示信息,可以构建如下表达式完成任务: ```python driver.find_element( By.XPATH, "//div[@id='specific_id']//following-sibling::ul/li[text()='Target Item']" ).click() # 此处假设 Target Item 即为目标字符串[^1] ``` 以上就是几种常见的使用 Selenium 对网页中的各种样式下的拉取框进行有效控制的技术手段概述。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值