Как найти элемент в онлайн-опросе по квалитрике с python селеном? - PullRequest
0 голосов
/ 20 апреля 2020

Я работаю над маркетинговым проектом, который должен собрать более 300 ответов с помощью опроса Qualtrics. Однако я не могу получить столько результатов.

Итак, я пытаюсь заполнить опросы селеном и python. Но я столкнулся с проблемой, что не могу найти элемент.

К вашему сведению: ссылка на опрос: https://hkbuhk.ca1.qualtrics.com/jfe/form/SV_cuvrHqLdEhcwTEV

from selenium import webdriver

driver = webdriver.Chrome('/usr/local/bin/chromedriver')
driver.get('https://hkbuhk.ca1.qualtrics.com/jfe/form/SV_cuvrHqLdEhcwTEV')

driver.find_element_by_xpath("//*[@id="QR~QID2~1"]").click()

Возвращает ошибку:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate 
element: {"method":"xpath","selector":"//*[@id="QR~QID2~1"]"}

Могу ли я узнать, как решить эту проблему? Большое спасибо!

1 Ответ

0 голосов
/ 20 апреля 2020

Попробуйте приведенное ниже решение. Это проблема с синхронизацией, и вы можете избежать ее, используя ожидание Webdriver.

driver.get("https://hkbuhk.ca1.qualtrics.com/jfe/form/SV_cuvrHqLdEhcwTEV")
driver.maximize_window()

wait = WebDriverWait(driver, 10)

wait.until(EC.element_to_be_clickable((By.XPATH, "//input[@id='QR~QID2~1']"))).click()

Примечание: , пожалуйста, добавьте ниже импорта в ваше решение

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...