2015-12-14 78 views
1

我正在運行一個python腳本,它使用硒在html頁面上填寫表單。該頁面包含2個div,其中一個隱藏,他們根據單選按鈕切換其狀態可見/隱藏。而這兩個divs有類似的元素 - 輸入有完全相同的id s。因此,當我想在第二個可見div中找到一個元素時,我實際上在第一個看不到的元素中找到它。一個頁面包含2個具有相同「id」的元素,我如何找到我需要的元素?

# 2 elements with the same id on the page 
# one of them is hidden because it's in a hidden div 

e1 = driver.find_element_by_id("some_id") 

我該如何解決這個問題?

回答

4

一個選擇是找到所有/兩的div和過濾visible one

visible_div = next(div for div in driver.find_elements_by_id("some_id") 
        if div.is_displayed()) 

或者,你可能只獲得通過索引所需的div(如果適用):

desired_div = driver.find_elements_by_id("some_id")[1] # the second one 
+0

可以'find_elements_by_id'返回2個元素? –

+0

@AlanCoromano是的,它會返回給定ID的所有元素。 – alecxe

相關問題