如果元素或 another_element 存在于 Python Selenium 中

if element or another_element exists in Python Selenium

我有一个页面,其中以下两个元素都可见,或者只有一个元素可见。我如何检查这两个元素中的任何一个是否存在?我的代码是例如:

def element_one():
   driver.find_element(By.CSS_SELECTOR, ".selector_one").is_displayed()

def element_two():
   driver.find_element(By.CSS_SELECTOR, ".selector_two").is_displayed()

if element_one() or element_two():
   print("OK")
else:
   print("ERROR")

如果我也尝试过 .is_displayed() 则对我不起作用,但如果 element_one 不可见但 element_two 可见,则仍然无效。 if 或语句未到达检查是否显示 element_two。基本上只检查 element_one ,如果不存在则打印 ERROR 而不检查 element_two.

您的函数 element_one()element_two() 没有返回任何内容。你想要做的是这样的:

def element_one():
   return driver.find_element(By.CSS_SELECTOR, ".selector_one").is_displayed()

def element_two():
   return driver.find_element(By.CSS_SELECTOR, ".selector_two").is_displayed()

if element_one() or element_two():
   print("OK")
else:
   print("ERROR")

试试这个

def element_one():
   try:
      driver.find_element(By.CSS_SELECTOR, ".selector_one").is_displayed()
   except:
      return False

def element_two():
   try:
      driver.find_element(By.CSS_SELECTOR, ".selector_two").is_displayed()
   except:
      return False

if element_one():
   print("OK")
elif element_two():
   print("OK")
else:
   print("ERROR")

由于您使用的是 CSS selector,因此您可以在单个搜索中同时进行元素搜索。

def verify_element():
   return driver.find_element(By.CSS_SELECTOR,".selector_one,.selector_two").is_displayed()
if verify_element():
    print("PASS")

这将为您提供所有可能的选择。

def verify_element():
   try:
      return driver.find_element(By.CSS_SELECTOR,".selector_one,.selector_two").is_displayed()
   except:
       return False
if verify_element():
    print("PASS")
else:
    print("Error")