繁体   English   中英

使用 Selenium Python 未选择下拉选项

[英]Dropdown option not getting selected using Selenium Python

我正在尝试 select 在 Python 中使用 Selenium webdriver 的表单中的下拉选项。XPATH 是正确的,我还验证了它会转到正确的下拉选项,但最终它没有选择它。

我已经为另一个有下拉菜单的网站尝试了类似的代码。 但它不适用于这个特定的网站。

有人可以帮忙吗?

from selenium import webdriver

driver = webdriver.Chrome("C:\\Users\\xxx\\Downloads\\chromedriver_win32\\chromedriver.exe")

driver.get("https://www.cersai.org.in/CERSAI/dbtrsrch.prg")

elem = driver.find_element_by_xpath("//select[@id='borrowerType']")
all_options = elem.find_elements_by_tag_name("option")

for option in all_options:
    if option.get_attribute("value") == "IND":
        option.click()
        break

您应该在访问下拉元素以使其加载之前添加等待时间。
此外,这是一个Select元素,您可以按如下特殊方式处理它:

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

driver = webdriver.Chrome("C:\\Users\\xxx\\Downloads\\chromedriver_win32\\chromedriver.exe")

wait = WebDriverWait(driver, 20)

driver.get("https://www.cersai.org.in/CERSAI/dbtrsrch.prg")

wait.until(EC.visibility_of_element_located((By.XPATH, "//select[@id='borrowerType']")))

select = Select(driver.find_element_by_xpath("//select[@id='borrowerType']"))
# select by visible text
select.select_by_value('IND')

奇怪的是 Select class 没有用。 它需要一个 JavaScript 电话。

driver = webdriver.Chrome(driver_path)
driver.maximize_window()
driver.implicitly_wait(50)
driver.get("https://www.cersai.org.in/CERSAI/dbtrsrch.prg")
driver.execute_script("return document.getElementById('borrowerType').selectedIndex = '2'")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM