Selenium Python如何通过data-value属性定位并操作地区选择器组件
问题原因
你使用的是自定义模拟的下拉选择组件,不是原生<select>标签,你写的//li[@data-value='eu']定位语法本身没有问题,失败的核心原因是点击时下拉框处于收起状态,li元素不可见,无法触发交互。
正确操作步骤
交互需要分两步执行:先点击选择器外层容器展开下拉列表,等目标选项可见后再点击选择。
修改后的代码示例
你可以直接替换原代码中地区选择相关的逻辑,用显式等待替代固定time.sleep提升稳定性:
# 1. 定位地区选择器外层容器,点击触发下拉展开 region_select = WebDriverWait(driver, 10).until( EC.element_to_be_clickable((By.CSS_SELECTOR, "div.Region_select__1h_yh")) ) region_select.click() # 2. 等待对应地区选项可见后点击,通过data-value属性定位 target_option = WebDriverWait(driver, 10).until( EC.element_to_be_clickable((By.XPATH, "//li[@data-value='eu']")) ) target_option.click()
补充说明
点击外层容器后,容器会自动新增Input_open__3e__v类名,下拉列表的所有li选项会渲染为可见状态,此时点击data-value匹配的元素就能正常完成选择。
内容的提问来源于stack exchange,提问作者levlevon
相关产品推荐
相关产品推荐

