if元素或another_element存在于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。

由于使用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")

最新更新