【发布时间】:2017-11-13 01:58:10
【问题描述】:
我正在尝试使用以下代码来使用 selenium (python) 从网页的下拉列表中选择一个选项。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
path_to_chromedriver = 'C:/Users/User_1/chromedriver/chromedriver'
browser = webdriver.Chrome(executable_path = path_to_chromedriver)
url = 'https://lifeinsurance.rac.com.au/rac/get-a-quote?productid=51'
browser.get(url)
wait = WebDriverWait(browser, 10)
# residence listbox
drop_down = browser.find_element_by_xpath('//*[@id="divApplicantDetails__1"]/div[8]/div/div[2]/span/span/span[1]')
browser.execute_script('arguments[0].style.display="inline";', drop_down)
wait.until(EC.element_to_be_clickable((By.XPATH, '//*[@id="divApplicantDetails__1"]/div[8]/div/div[2]/span/span/span[1]')))
wait.until(EC.element_to_be_clickable((By.XPATH, r'//*[@id="ddResidentialStatusId__1_listbox"]/li[1]'))).click()
在某些情况下它可以工作(并且选择了下拉列表中的选项),但在其他情况下未选择下拉列表中的选项(并且也没有引发错误)。
对于如何从提供的代码中注明的下拉列表中始终选择选项的任何反馈,我将不胜感激。
【问题讨论】:
-
你让它变得更复杂,比它应该的更复杂 - 请看 Select class selenium-python.readthedocs.io/navigating.html#filling-in-forms
-
发布指向页面或相关 HTML 的链接
-
感谢@JeffC - 页面链接在代码中,分配给名为 url 的变量
-
@SAZ 它实际上不是
SELECT元素,所以这无济于事。 -
我尝试了所有方法。Eb=ven 尝试使用 javascript 执行器,但它们对我不起作用。使用 while 循环或使用 time.sleep(1) 1 秒即可。