Я пытаюсь использовать Selenium с Python, чтобы просмотреть серию вопросов на тестовом веб-сайте. На данный момент не имеет значения, какой ответ выбран - я просто хочу иметь возможность переходить от одного вопроса к другому. Вот что у меня есть:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
driver=webdriver.Firefox(executable_path="../../geckodriver.exe")
driver.get('https://www.varsitytutors.com/practice-tests')
wait = WebDriverWait(driver, 10)
# click subject
subject=driver.find_element_by_xpath('/html/body/div[3]/div[9]/div/div[2]/div[1]/div[1]')
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'/html/body/div[3]/div[9]/div/div[2]/div[1]/div[1]')))
subject.click()
# select specialty
specialty=driver.find_element_by_xpath('/html/body/div[3]/div[9]/div/div[2]/div[2]/div[1]/div[2]/a[4]')
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'/html/body/div[3]/div[9]/div/div[2]/div[2]/div[1]/div[2]/a[4]')))
specialty.click()
# select test
taketest=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,'/html/body/div[3]/div[8]/div[3]/div[1]/div[1]/a[1]')))
driver.execute_script("arguments[0].click();", taketest)
wait.until(EC.url_contains('diagnostic'))
driver.get(driver.current_url.replace('http', 'https'))
# click away popup
button=WebDriverWait(driver,5).until(EC.element_to_be_clickable((By.XPATH,"//button[contains(.,'No Thanks')]")))
button.location_once_scrolled_into_view
button.click()
# select first choice
choice=WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,'/html/body/div[3]/div[7]/div[1]/div[3]/div[1]/form/input[1]')))
driver.execute_script("arguments[0].click();", choice)
Эта последняя команда делает то, что должна. Насколько я знаю, следующая команда должна сделать то же самое - щелкнуть первый ответ на следующий вопрос ...
# select first choice again
choice=WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,'/html/body/div[3]/div[7]/div[1]/div[3]/div[1]/form/input[1]')))
driver.execute_script("arguments[0].click();", choice)
Однако это не работает. Соединение потеряно, и появляется страница с ошибкой Firefox.
Моя цель - просмотреть всю серию вопросов в этом конкретном тесте. Может кто-нибудь помочь мне разобраться, что делать?