Как перейти на следующую страницу? - PullRequest
0 голосов
/ 15 января 2020

Я просто пытаюсь почистить сайт, но я застрял. Вот мой код:

from selenium import webdriver

driver = webdriver.Firefox(executable_path='location of the geckodriver')
driver.get('http://kernyilvantartas.zalajaras.hu/public/')
driver.find_element_by_xpath("""//*[@id="btn"]""").click()
# the dropdown menu
driver.find_element_by_xpath("""//*[@id="lap"]""").click()
# click on page 2
driver.find_element_by_xpath("""//*[@id="lap"]/option[2]""").click()

После щелчка () он только выделяет 2-й вариант в выпадающем меню, но не переходит на следующую страницу. Есть идеи?

1 Ответ

0 голосов
/ 15 января 2020

Элемент, с которым вы пытаетесь взаимодействовать, является <select> узлом, поэтому вам нужно использовать класс Select , и вы можете использовать любой из следующих Стратегий локатора :

  • Использование метода CSS_SELECTOR и select_by_value():

    from selenium import webdriver
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.support.select import Select
    
    driver = webdriver.Firefox(executable_path=r'C:\Utility\BrowserDrivers\geckodriver.exe')
    driver.get('http://kernyilvantartas.zalajaras.hu/public/')
    WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input#btn"))).click()
    select = Select(WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "select[name='lap']"))))
    select.select_by_value("2")
    
  • Использование метода XPATH и select_by_visible_text():

    from selenium import webdriver
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.support.select import Select
    
    options = webdriver.ChromeOptions() 
    options.add_argument("start-maximized")
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    options.add_experimental_option('useAutomationExtension', False)
    driver = webdriver.Firefox(executable_path=r'C:\Utility\BrowserDrivers\geckodriver.exe')
    WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//input[@id='btn']"))).click()
    select = Select(WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//select[@name='lap']"))))
    select.select_by_visible_text("2")
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...