一个页面包含2个具有相同" id"的元素,如何找到我需要的元素?

时间:2015-12-14 01:09:41

标签: python html selenium

我正在运行一个python脚本,它使用selenium在html页面上填写表单。该页面包含2个div,其中一个是隐藏的,它们根据单选按钮切换状态可见/隐藏。这两个div具有相似的元素 - 输入具有完全相同的id s。因此,当我想在第二个可见div中找到一个元素时,我实际上是在第一个看不见的div中找到它。

# 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") 

我该如何解决?

1 个答案:

答案 0 :(得分: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