用 selenium 填充 google 表单时元素不可交互

Element is not interactable while filling a google form with selenium

我正在尝试自动填写 google 表单,但我遇到了 select 下拉菜单答案的问题。元素的 class 不是“select”,所以我不能使用硒“简单方法”来 select 我想要的值。这是我的脚本:

url = "https://docs.google.com/forms/d/e/1FAIpQLSd-GczApKBubTy7ka1ut60waFEdXywuL0dGFQAAZS6_uZKTWQ/viewform"

browser = set_up_driver() # simple browser set up
browser.get(url)
browser.implicitly_wait(5)
time.sleep(3)

box_xpath = "/html/body/div/div[2]/form/div[2]/div/div[2]/div/div/div/div[2]/div/div[1]/div[1]/div[1]"
browser.find_element_by_xpath(box_xpath).click()
xpath = """//*[@id="mG61Hd"]/div[2]/div/div[2]/div/div/div/div[2]/div/div[1]/div[1]/div[4]/span"""
time.sleep(1)
browser.find_element_by_xpath(xpath).click()

XPath 是正确的,但这是尝试单击菜单中的元素时返回的错误:

selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable
  (Session info: chrome=89.0.4389.114)

我很确定这不是由未加载元素引起的错误 我愿意以任何方式点击可在线程中使用的元素。我目前正在使用 pyautogui 来使用 DOWN 键在下拉菜单中向下移动,但此解决方案不能在单独的线程中使用。这是我用来测试下拉菜单上的脚本的测试 google:https://docs.google.com/forms/d/e/1FAIpQLSd-GczApKBubTy7ka1ut60waFEdXywuL0dGFQAAZS6_uZKTWQ/viewform

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


box_xpath = '//div[@role="option" and @data-value]/span'
wait = WebDriverWait(browser, 10)
wait.until(EC.element_to_be_clickable((By.XPATH, box_xpath))).click()
xpath = '(//div[@role="option" and @data-value]/span)[2]'
wait.until(EC.element_to_be_clickable((By.XPATH, xpath))).click()

不要使用绝对 xpath,使用相对 xpath,而且您用于选项的 xpath 指向的元素不是实际选项。将索引从 [2] 更改为 [3] 等等以找到不同的选项