python selenium无法点击标签

时间:2017-07-04 05:39:06

标签: python selenium

我试图点击下面显示的名为“Segment Metrix 2.0 Consumer Target Profile report”的按钮

enter image description here

我找到了相应的HTML,如下所示。

enter image description here

我尝试编写如下代码:

elem = driver.find_elements_by_xpath("//*[contains(text(), 'Segment Metrix 2.0 Consumer Target Profile report ')]")
print (elem)
它给了我:

[<selenium.webdriver.remote.webelement.WebElement (session="daf65f4e5ed0485027d04eed8db8aca7", element="0.8079987809618281-1")>]

但是我无法通过添加elem[0].click()来点击它,它会让我看到一个不可见的&#34;元素&#34;错误。我该怎么办?

3 个答案:

答案 0 :(得分:1)

问题是元素必须是可见的。这意味着,即使它是在HTML中,它还不够,它必须从浏览器中可见。尝试首先单击下拉列表以查看其元素,而不是单击其中一个元素。此外,在点击下拉列表后,不要忘记等到明确或隐式地看到您的元素。

您确定需要点击它吗?如果它只是一个带有网址的对象,请确定网址并使用driver.get(url)

答案 1 :(得分:0)

尝试等到元素变为可见:

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait as wait

wait(driver, 10).until(EC.visibility_of_element_located((By.LINK_TEXT, "Segment Metrix 2.0 Consumer Target Profile report"))).click()

答案 2 :(得分:0)

您可以等待元素可见

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

elem = driver.find_elements_by_xpath("//*[contains(text(), 'Segment Metrix 2.0 Consumer Target Profile report ')]")
WebDriverWait(driver, 10).until(EC.visibility_of(elem[0]))
elem[0].click()