2017-07-04 107 views
2

我想請點擊如下圖所示名爲「段Metrix的2.0消費對象檔案報告」蟒蛇硒無法點擊標籤

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(),它拋出我「元素不可見」錯誤。我該怎麼辦?

回答

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() 
+0

謝謝您的回答!我嘗試過,但我得到了一個timeoutexception:'selenium.common.exceptions.TimeoutException:消息:' –

+0

您點擊「Segment Metrix 2.0 Consumer Target Profile report」之前是否點擊了「Segment dec」? – Andersson

+0

你是對的!我沒有點擊segment dec。只需點擊它,它的作品! Thx;) –

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() 
0

的問題是該元素具有可見。這意味着即使它在html中也是不夠的,它必須在瀏覽器中可見。嘗試先點擊下拉列表以查看其元素,而不是單擊其中一個元素。另外,點擊下拉列表後,不要忘記等到你的元素被顯式或隱式地看到。

您確定需要點擊它嗎?如果它只是一個帶有網址的對象,請確切鏈接並使用driver.get(url)

+0

非常好的解釋!我點擊下拉列表,它的作品!謝謝。是的,我必須點擊它,因爲URL始終保持不變。 –