我正在运行一个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")
我该如何解决?
答案 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