使用硒从下拉菜单中选择

selecting from dropdown menu with selenium

我正在尝试 select 在 python 中使用 selenium 的下拉菜单。 我无法让它工作。我已经通过 xpath 在不同的链接上尝试 "clicking" 并且它有效。但是我想不通下拉菜单。

这是我尝试使用的代码:

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()

网页使用AngularJS编写,动态加载数据。因此,请使用 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()

然后点击就可以了