我们以登录新浪微博为案例来讲解,首先进入登录页面,输入用户名和密码,点击登录按钮,并且获得用户信息以验证是否登录成功。
Web地址:https://login.sina.com.cn/signup/signin.php
在编写功能测试用例时,会假定一个预期结果,在执行用例的过程中把得到的实际结果与预期结果进行比较,从而判断用户的通过或失败。自动化测试用例时右机器去执行的,通常机器不像人一样有思维和判断能力。因此我们在自动化用例执行完成之后,可以从页面上获取一些信息来“证明”用例执行是成功还是失败。
通常用的最多的几种验证信息分别是title、URL和text。
代码实现:
from selenium import webdriver from time import sleep driver=webdriver.Firefox() driver.get("https://login.sina.com.cn/signup/signin.php") print("Before login=====================================") # 打印当前页面title print(driver.title) # 打印当前页面URL print(driver.current_url) # 执行登录 driver.find_element_by_id("username").clear() driver.find_element_by_id("username").send_keys("88888888@qq.com") driver.find_element_by_id("password").clear() driver.find_element_by_id("password").send_keys("password") driver.find_element_by_css_selector("[type='submit']").click() sleep(5) print("Before login=====================================") # 再次打印当前页面title print(driver.title) # 再次打印当前页面URL print(driver.current_url) # 获得登录的用户名 print(driver.find_element_by_css_selector(".me_name").text) driver.quit()
运行脚本后执行结果如下:
Before login=====================================
新浪通行证登录
https://login.sina.com.cn/signup/signin.php
Before login=====================================
我的新浪_个人中心_新浪网
http://my.sina.com.cn/
Nancy-Test
title:用于获得当前页面的标题
current_url:用户获得当前页面的URL
通过打印结果显示,可以发现登录前后的title和URL明显不同。因此,可以把登录之后的这些信息存放起来,作为登录是否成功的验证信息。当然,如果URL每次登录都会有所变化,是不能拿来做验证信息的。title可以拿来做验证信息,但它并不能明确的表示是哪个用户登录成功了,因此通过text获取用户文本是很好的验证信息。