выбор из выпадающего меню с селеном - PullRequest
1 голос
/ 11 октября 2019

Я пытаюсь выбрать выпадающее меню с селеном в python. Я не могу заставить его работать. Я попытался «нажать» на разные ссылки через xpath, и это работает. Но я не могу понять выпадающее меню.

Это код, который я пытался использовать:

path = r"C:\Program Files\chromedriver_win32\chromedriver.exe"
driver = webdriver.Chrome(path)

driver.get("http://elpris.dk")

driver.find_element_by_xpath("""//*[@id="btnSelectProfile"]""").click()

1 Ответ

0 голосов
/ 11 октября 2019

Веб-страница написана с использованием Angular JS, который загружает данные динамически. Итак, используйте WebDriverWait, чтобы страница была загружена правильно.

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

path = r"C:\Program Files\chromedriver_win32\chromedriver.exe"

driver = webdriver.Chrome(path)
driver.get("http://elpris.dk")
delay = 15
wait = WebDriverWait(driver, delay)
try:
    elem = wait.until(
           EC.element_to_be_clickable((By.ID, 'btnSelectProfile')))
    elem.click()
except Exception as e:
    print(e)        

Другой вариант - добавить немного сна, чтобы дождаться правильной загрузки данных, как показано ниже:

import time
path = r"C:\Program Files\chromedriver_win32\chromedriver.exe"
driver = webdriver.Chrome(path)

driver.get("http://elpris.dk")
time.sleep(3)
driver.find_element_by_xpath("""//*[@id="btnSelectProfile"]""").click()

Тогдащелчок сработает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...