Selenium / python - 无法单击元素

时间:2016-07-09 21:08:08

标签: jquery python selenium selenium-webdriver

我正在尝试使用python和selenium去网站收集一些数据,但我甚至无法通过初始弹出窗口要求我点击“接受”按钮以同意使用条款!该网站为here

我可以看到'接受' link / div有一个id,我尝试使用find_element_by_xpath并选择id然后尝试点击,但这不起作用。

我还尝试使用ActionChains导航到按钮并单击,但这也不起作用。它返回的错误是元素在点上无法点击...

在后台似乎有一些jquery / javascript正在进行中,这很难处理!

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

诀窍是等待“接受”按钮变为可点击,移动到按钮并点击:

from selenium import webdriver
from selenium.webdriver import ActionChains
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.Firefox()
driver.get("https://www.etfsecurities.com/institutional/uk/en-gb/products.aspx")

wait = WebDriverWait(driver, 10)
accept = wait.until(EC.element_to_be_clickable((By.ID, "btnPopupAccept")))

actions = ActionChains(driver)
actions.move_to_element(accept).click().perform()