繁体   English   中英

如果 Python Selenium 中存在 element 或 another_element

[英]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 or 语句无法检查 element_two 是否显示。 基本上只检查 element_one,如果不存在则打印 ERROR 而不检查 element_two。

由于您使用的是CSS selector您可以在单个 serach 中进行两个元素搜索。

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")

您的函数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")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM