2017-05-10 60 views
1

我正在編寫一段python代碼來測試用戶是否能夠點擊動態選項卡。如何點擊包含在使用Python硒的div容器流體的鏈接

我正在使用find_elements_by_xpath()來搜索選項卡的屬性。現在,這是一組動態標籤,所以它們永遠不會在頁面源代碼中可見。但是,當我點擊檢查元素時它們確實存在。

我用這樣的識別標籤:

elem = self.browser.find_elements_by_xpath("//a[contains(@role,'tab')]") 
for i in elem: 
    print(i.text) 

我試過get_attribute功能,但沒有奏效。有沒有什麼辦法可以使用python selenium來點擊一個動態標籤頁(它沒有出現在頁面源代碼中)?

回答

0

您可以wait some time直到必需的元素存在於DOM和點擊:

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

wait(self.browser, 10).until(EC.element_to_be_clickable((By.XPATH, '//a[contains(@role, "tab")]'))).click() 
+0

感謝安德森。這真的有幫助。只是一件事 - 我有多個選項卡,這隻能幫助我選擇第一個。有沒有一種方法可以將其擴展到多個選項卡?該文件沒有暗示有某種方式,例如, elements_to_be_clickable或類似的東西? –

+0

通常你可能需要點擊一個鏈接,所以你可能會使用更具體的'XPath'來匹配所需的鏈接,或者如果你想獲得,例如,每個元素的鏈接文本,你可以將'EC.element_to_be_clickable'替換爲' EC.presence_of_all_elements_located' – Andersson

相關問題