我试图点击下面显示的名为“Segment Metrix 2.0 Consumer Target Profile report”的按钮
我找到了相应的HTML,如下所示。
我尝试编写如下代码:
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;错误。我该怎么办?
答案 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()