断言:在流程结束之后进行调用,将自动化脚本实际运行的结果与预期结果进行对比,如果相同则表示运行成功。
注意:校验的点要为页面中最为关键能够表达此次结果的元素。自动化脚本不写断言,相当于没有执行测试一个效果。
1. 第一种断言方式:assert
Python中自带的关键字:通过表达式来进行断言
from selenium import webdriver
# 登录流程
driver = webdriver.Chrome()
driver.implicitly_wait(5)
driver.get('http://39.98.138.157/shopxo/index.php?s=/index/user/logininfo.html')
driver.find_element('name', 'accounts').send_keys('xiaoyang123_')
driver.find_element('name', 'pwd').send_keys('cxy521521')
driver.find_element('xpath','//button[text()="登录"]').click()
# 断言:assert
assert '退出' == driver.find_element('link text', '退出').text #获取元素的文本信息
2. 第二种断言方式:显示等待
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
#登录流程
driver = webdriver.Chrome()
driver.implicitly_wait(5)
driver.get('http://39.98.138.157/shopxo/index.php?s=/index/user/logininfo.html')
driver.find_element('name', 'accounts').send_keys('xiaoyang123_')
driver.find_element('name', 'pwd').send_keys('cxy521521')
driver.find_element('xpath','//button[text()="登录"]').click()
# 显示等待
WebDriverWait(driver, 5, 0.5).until(lambda el: driver.find_element('link text', '退出1'),
message='流程运行失败')'''
3. 第三种断言方式:if...else...
from selenium import webdriver
driver = webdriver.Chrome()
driver.implicitly_wait(5)
driver.get('http://39.98.138.157/shopxo/index.php?s=/index/user/logininfo.html')
driver.find_element('name', 'accounts').send_keys('xiaoyang123_')
driver.find_element('name', 'pwd').send_keys('cxy521521')
driver.find_element('xpath','//button[text()="登录"]').click()
# if else
text = '退出1'
text1 = driver.find_element('link text', '退出').text
if text == text1:
print(True)
else:
print(False)