微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python Selenium中是否存在element或another_element

如何解决Python Selenium中是否存在element或another_element

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

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,如果不存在,则输出错误,而不检查element_two。

解决方法

由于您使用的是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_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")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。