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

如何在Python中检测单选按钮是否被选中?Python+Selenium网页抓取项目求助

解决Python Selenium获取选中单选按钮数据的问题

嘿,我来帮你搞定这个单选按钮的问题!看你给出的HTML代码,目标元素已经很明确了——这个选中的单选按钮带有checked="checked"属性,value里包含了你需要的结构化数据。咱们一步步来实现获取它的功能:

第一步:定位选中的单选按钮

首先,我们要精准定位到当前处于选中状态的那个单选按钮。这里推荐用CSS选择器,因为它可以直接过滤出带checked属性的元素,语法很直观:

from selenium import webdriver
from selenium.webdriver.common.by import By

# 初始化浏览器(以Chrome为例)
driver = webdriver.Chrome()
driver.get("你的目标网页地址")

# 定位选中的单选按钮
selected_radio = driver.find_element(By.CSS_SELECTOR, "input[name='choix_formule1']:checked")

第二步:验证选中状态并获取数据

定位到元素后,我们可以先确认它确实是选中的(虽然用:checked选择器已经保证了这一点,但做个验证更稳妥),然后提取value属性里的内容:

# 验证是否选中
if selected_radio.is_selected():
    # 获取完整的value值
    radio_value = selected_radio.get_attribute("value")
    print(f"选中的单选按钮数据:{radio_value}")
    
    # 拆分value里的结构化数据(因为value用@@分隔)
    data_parts = radio_value.split("@@")
    # 根据你的需求提取对应字段,比如:
    room_type = data_parts[2]  # Chambre Double
    guest_count = data_parts[3]  # 20
    room_abbr = data_parts[4]  # DBL
    
    print(f"房型:{room_type}")
    print(f"人数:{guest_count}")
else:
    print("当前没有选中的单选按钮")

第三步:处理页面加载延迟问题

如果遇到页面还没加载完就执行代码导致找不到元素的情况,建议加上显式等待,确保元素加载完成后再操作:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 等待10秒,直到选中的单选按钮出现
selected_radio = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, "input[name='choix_formule1']:checked"))
)

注意事项

  • 如果页面中有多个同名的单选按钮(name="choix_formule1"),用find_element会返回第一个选中的;如果需要处理所有选中的,可以改用find_elements,然后遍历每个元素检查is_selected()状态。
  • 记得操作完成后关闭浏览器,避免资源占用:driver.quit()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 03:32:41