繁体   English   中英

selenium webdriver.click() 不工作

[英]selenium webdriver .click() is not working

我正在尝试使用 python 和 selenium 自动化下载过程。

以下是代码:

from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://www1.nseindia.com/products/content/equities/equities/eq_security.htm")
driver.find_element(By.ID, "symbol").send_keys("AARTISURF")
driver.find_element(By.ID, "get").click()
driver.find_element(By.LINK_TEXT, "Download file in csv format").click()

上面的代码是从 selenium IDE 导出的,它工作得很好。 但是在 python 中,只要单击“获取”,代码就会停止并且什么也不做。 我已经尝试过几乎所有其他的“By”,例如 Xpath、Class、CssSelector 等。

有谁知道它为什么会发生以及如何纠正它? 另外,如果您有更好的想法下载此数据,请回复。 提前致谢。

只需禁用闪烁并添加等待。

options = Options()
options.add_argument('--disable-blink-features=AutomationControlled')
driver = webdriver.Chrome(options=options)
wait = WebDriverWait(driver, 10)
driver.get("https://www1.nseindia.com/products/content/equities/equities/eq_security.htm")
wait.until(EC.element_to_be_clickable((By.ID,"symbol"))).send_keys("AARTISURF")
wait.until(EC.element_to_be_clickable((By.ID,"get"))).click()
wait.until(EC.element_to_be_clickable((By.LINK_TEXT,"Download file in csv format"))).click()

进口

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

您可以使用driver.execute_script("document.getElementById('submitMe').click();")而不是实际单击此站点上的按钮。 请记住,这只是解决您的问题的方法。

尝试在单击之前添加显式等待。 此外,您的定位器可能是错误的。 使用WebDriverWait

from selenium.webdriver.support.wait import WebDriverWait

wait = WebDriverWait(driver, 10)
wait.until(EC.element_to_be_clickable((SelectBy.CSS, ".download-data-link")))
button = driver.find_element_by_css_selector(".download-data-link")
button.click()

暂无
暂无

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

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