Selenium 单选按钮不起作用

Selenium Radio Button not Functioning

我想创建一个自动填写 Google 表单调查的机器人,其中充满了单选按钮。当我尝试填写表格时,成功单击了第一个性别单选按钮。然而,第二年龄组的按钮却没有?这是一个错误吗?

import time
from selenium import webdriver



browser = webdriver.Chrome(executable_path='C:/Users/ryan/Downloads/chromedriver.exe')
browser.get('https://docs.google.com/forms/d/e/1FAIpQLScA8I-O5FQoYPwU6yoYJmAwrIJdBB/viewform?fbzx=-1760864547538697754')

RadioGender= browser.find_element_by_xpath('//*[@id="i5"]/div[3]/div')
RadioGender.click()

RadioAge= browser.find_element_by_xpath('//*[@id="i18"]/div[3]/div/div')
RadioAge.click()

要处理动态元素,请使用 WebDriverWait() 并等待元素可点击并遵循 locator 策略。

browser.get("https://docs.google.com/forms/d/e/1FAIpQLScA8I-O5FQoYPwU6yoYJmAwrIJdBBt1MqEgoQOz9oHWWmTY1Q/viewform?fbzx=-1760864547538697754")
WebDriverWait(browser, 10).until(EC.element_to_be_clickable((By.XPATH, '//span[text()="Next"]'))).click()
RadioGender= WebDriverWait(browser, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@data-value="Male"]')))
RadioGender.click()

RadioAge=  WebDriverWait(browser, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@data-value="21-23"]')))
RadioAge.click()

您需要导入以下库。

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

注意:如果您想 select 其他年龄段,您需要将这些值作为数据值传递。