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

Selenium实操:如何仅选择指定div内的分组单选按钮?

解决分组单选按钮定位问题

你当前的选择器会匹配页面上所有.panel-body里的单选按钮,所以把第一个面板(Single Radio Button Demo)里的2个按钮也包含进来了,总共7个。要只获取Group Radio Buttons Demo区域内的5个按钮,可以用以下两种更精准的选择器:

方案1:通过面板标题定位

利用面板的标题文本锁定目标区域,XPath选择器如下:

buttons = driver.find_elements(by=By.XPATH, value="//h3[text()='Group Radio Buttons Demo']/following-sibling::div[@class='panel-body']//input[@type='radio']")

这个选择器先找到标题为Group Radio Buttons Demo的<h3>标签,再定位它相邻的.panel-body容器,最后获取里面的所有单选按钮,完全限定在目标分组区域内。

方案2:通过面板顺序定位

如果页面结构固定,第二个.panel-body就是目标分组区域,可以用索引定位:

buttons = driver.find_elements(by=By.XPATH, value="(//div[@class='panel-body'])[2]//input[@type='radio']")

这里用(//div[@class='panel-body'])[2]直接选取第二个面板容器,再获取其中的单选按钮,简单直接。

修改后的完整代码片段:

#Multiple Radio Button Demo
# 方案1写法
buttons = driver.find_elements(by=By.XPATH, value="//h3[text()='Group Radio Buttons Demo']/following-sibling::div[@class='panel-body']//input[@type='radio']")
# 或者方案2写法
# buttons = driver.find_elements(by=By.XPATH, value="(//div[@class='panel-body'])[2]//input[@type='radio']")
print(len(buttons)) # 输出应为5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 02:20:33