(Selenium - Python) 在 webDriver 中查找两个元素之一
(Selenium - Python) Finding one of two elements in webDriver
在我的应用程序中,我预计会出现两个元素(a 或 b)之一。我目前有:
el1 = driver.find_element_by_id("a")
但是,我想做类似的事情:
el1 = driver.find_element_by_id("a" or "b")
这在硒中可能吗?如果有帮助,我会在 Python 中执行此操作。
在这种情况下你可以使用 xpath :
el1 = driver.find_element_by_xpath("//*[@id= 'a' or @id = 'b']")
我假设 two tags in HTML
有两个不同的 ids
,你可以像上面那样在 xpath 中写 or
条件。
更新:
请注意使用 android 应用程序实现此功能的任何人,语法为:
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
简单直接的解决方案:
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')
在我的应用程序中,我预计会出现两个元素(a 或 b)之一。我目前有:
el1 = driver.find_element_by_id("a")
但是,我想做类似的事情:
el1 = driver.find_element_by_id("a" or "b")
这在硒中可能吗?如果有帮助,我会在 Python 中执行此操作。
在这种情况下你可以使用 xpath :
el1 = driver.find_element_by_xpath("//*[@id= 'a' or @id = 'b']")
我假设 two tags in HTML
有两个不同的 ids
,你可以像上面那样在 xpath 中写 or
条件。
更新:
请注意使用 android 应用程序实现此功能的任何人,语法为:
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
简单直接的解决方案:
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')