[英]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.