如果元素或 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")
我有一个页面,其中以下两个元素都可见,或者只有一个元素可见。我如何检查这两个元素中的任何一个是否存在?我的代码是例如:
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")