You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python+Selenium点击单选按钮失败求助:三种方案均无效

搞定Selenium点击单选按钮的问题

为啥之前的方法失效

你之前试的三种定位都用了固定ID o1BQ41-real,但这个ID是页面动态生成的——每次刷新页面都会变,所以根本定位不到目标元素,点击自然没反应。

正确的解决办法

换用不依赖动态ID的稳定定位方式,同时用显式等待代替time.sleep,确保元素加载好、能点击了再操作。

完整可用代码

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome('C:\Webdriver\chromedriver.exe')
driver.get('https://biruni.tuik.gov.tr/disticaretapp/menu_ing.zul')
driver.maximize_window()

# 等页面加载完,点击"Product/Product Groups-Partner Country"
WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.XPATH, '//*[contains(text(), "Product/Product Groups-Partner Country")]'))
).click()

# 等待目标单选按钮加载完成并点击(这里以"Product/Product Groups"对应的单选框为例,按需替换文本)
# 通过旁边的标签文本关联定位,避开动态ID
target_radio = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.XPATH, '//label[contains(text(), "Product/Product Groups")]/preceding-sibling::input[@type="radio"]'))
)
target_radio.click()

# 后续操作完成后记得关闭浏览器
# driver.quit()

关键说明

  • 显式等待:WebDriverWait会在10秒内一直等待元素变为可点击状态,比固定时长的time.sleep靠谱得多,不会因为页面加载慢导致找不到元素。
  • 稳定定位:通过单选按钮旁边的标签文本(比如"Product/Product Groups")关联定位对应的单选框,完全不受动态ID的影响。如果要选择其他单选按钮,把XPath里的文本换成对应内容即可(比如"Partner Country")。

内容的提问来源于stack exchange,提问作者user19601184

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 18:06:19