(Selenium-Python)在webDriver中查找两个元素之一



在我的应用程序中,我可以期望出现两个元素(a或b(中的一个。我目前有:el1 = driver.find_element_by_id("a")

但是,我想做一些类似的事情:el1 = driver.find_element_by_id("a" or "b")

硒中可能存在这种情况吗?如果有帮助的话,我在Python中做这件事。

简单明了的解决方案:

try:
# Look for first element
el1 = driver.find_element_by_id('a')
except selenium.common.exceptions.NoSuchElementException:
# Look for the second if the first does not exist
el1 = driver.find_element_by_id('b')

在这种情况下可以使用xpath:

el1 = driver.find_element_by_xpath("//*[@id= 'a' or @id = 'b']")

我假设two tags in HTML有两个不同的ids,您可以像上面一样在xpath中编写or条件。

更新:

提醒任何使用安卓应用程序实现此功能的人,语法为:

el1 = driver.find_element_by_xpath("/hierarchy/a" or "/hierarchy/b")

在纯Python中,您可以执行以下操作:

el1 = driver.find_element_by_id("a") if driver.find_element_by_id("a") else driver.find_element_by_id("b") if driver.find_element_by_id("b") else None

最新更新