我正在使用if-elif条件。当元素处于第一个条件时可以找到它们,但是Selenium只是挂起,而当元素在elif上时找不到。有什么想法吗?
这是我正在使用的代码:
if (driver.find_elements_by_xpath(("//*[contains(text, 'Hello Automation User')]"))):
print ("Test Passed")
elif (driver.find_elements_by_class_name('error')):
print ("Test Failed: Username and Password combination mismatch")
else:
print("Test failed")
仅供参考,我正在使用chromedriver
答案 0 :(得分:0)
由于其本质是elif语句,因此如果前一个if语句为true,则不会运行该语句: 例如
x = True
if x:
print('if')
elif x:
print('elif')
output: 'if'
答案 1 :(得分:0)
如果没有元素webdriver
将抛出exception
,因此您应该使用Try..Except块来实现这一目标。希望获得帮助
try:
if (driver.find_element_by_xpath(("//*[contains(text, 'Hello Automation User')]"))):
print ("Test Passed")
except:
if (driver.find_element_by_class_name('error')):
print ("Test Failed: Username and Password combination mismatch")
else:
print("Test Failed")
答案 2 :(得分:0)
而不是捕获异常,请尝试如下操作:
if len(driver.find_elements_by_xpath(("//*[contains(text, 'Hello Automation User')]"))) > 0:
# pass
elif len(driver.find_elements_by_class_name('error')) > 0:
# fail
else:
# fail
请注意,driver.find_elements_by_xpath返回一个数组,因此它总是真实的(您拥有它的方式)