随笔记录方便自己和同路人查阅。
#------------------------------------------------我是可耻的分割线-------------------------------------------
学习selenium自动化之前,最好先学习HTML、CSS、JavaScript等知识,有助于理解定位及操作元素的原理。关于python和selenium安装请自行搜索别的资料,
这里就不多做介绍了,所有例子均使用python3.6+selenium执行的。
#------------------------------------------------我是可耻的分割线-------------------------------------------
在编写功能测试用例时,会假定一个预期结果,在执行用例的过程中把得到的实际结果与预期结果进行比较,从而判断用户的通过或失败。自动化测试用例测试用例是由机器去执行的,通常机器并不像人一样有思维和判断能力,那么是不是模拟各种操作页面的动作没有报错就说明用例执行成功呢?并非如此,例如我们模拟百度搜索的用例,当新的迭代版本上线后每一页的搜索结果少一条,但用例的执行不会报错,因此这个Bug永远不会被自动化测试发现。
那么是不是在运行自动化测试用例时需要由测试人员盯着用例的执行结果呢?如果是这样的话,自动化测试就失去了“自动化”的意义。在自动化用例执行完成之后,我们可以从页面上获取一些信息来“证明”用例执行是成功还是失败。
通常用得最多的几种验证信息分别是title、URL和text。Text方法在前面文章中提到过,它用于获取标签之间的纯文本信息。
以百度为例:
#导入模块 from selenium import webdriver import time #实例化 driver = webdriver.Chrome() driver.get("http://www.baidu.com") print("Before login================") #打印当前页面title title = driver.title print(title) #打印当前页面URL now_url = driver.current_url print(now_url) #执行点击百度首页“新闻”操作 driver.find_element_by_link_text(‘新闻‘).click() print("After login================") #再次打印当前页面title title = driver.title print(title) #打印当前页面URL now_url = driver.current_url print(now_url)
结果展示:
title:用于获得当前页面标题。
current_url:用于获得当前页面的URL。
通过打印结果,我们发现登录前后的title和URL明显不同。我们可以把登录之后的这些信息存放起来,作为登录是否成功的验证信息。当然,这里URL每次登录都会有所变化, 是不能拿来做验证信息的。Title可以拿来做验证信息,但它并不能明确地表示是哪个用户登录成功了,因此我们通过text获取用户文本是很好的验证信息。