(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')