在写自动化脚本之前,需要明确手动脚本的步骤,然后去拆分到具体没一个步骤做什么,考虑好了之后,才开始动手去写脚本。我把这个测试场景分拆如下步骤:
1) 启动后浏览器,这里我们用Chrome
2) 打开百度首页,https://www.baidu.com
3) 定位搜索输入框,记录下输入框元素的xpath表达式://*[@id='kw']
4) 定位搜索提交按钮(百度一下这个按钮),获取xpath表达式://*[@id='su']
5) 在搜索输入框输入“Selenium”,点击百度一下这个按钮。
6) 在搜索结果列表去判断是否存在Selenium官网这个链接。
7) 退出浏览器,结束测试。
如果,还不会通过火狐浏览器上插件firepath获取元素的表达式,请看上一篇文章。如果你没有安装Chrome,那就用Firefox。
1) 桌面新建一个记事本,命名并保存为FirstScript.py
2) 输入如下代码片段到FirstScript.py,保存
3) 打开cmd窗口,切换到桌面路径下,然后通过python FirstScript.py 来执行脚本。
FirstScript.py脚本如下
[python] view plain copy
import time
from selenium import webdriver
driver = webdriver.Chrome() # 打开chrome,如果没有安装chrome,换成webdriver.Firefox()
driver.maximize_window() # 最大化浏览器窗口
driver.implicitly_wait(8) # 设置隐式时间等待
driver.get("https://www.baidu.com") # 地址栏输入百度地址
driver.find_element_by_xpath("//*[@id='kw']").send_keys("selenium") # 搜索输入框输入Selenium
driver.find_element_by_xpath("//*[@id='su']").click() #点击百度一下按钮
time.sleep(2)
driver.find_element_by_xpath("//div/h3/a[text()='官网']/../a/em[text()='Selenium']").is_displayed()
driver.quit()
第二种断言写法:
[python] view plain copy
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(8)
driver.get("https://www.baidu.com")
driver.find_element_by_xpath("//*[@id='kw']").send_keys("selenium")
driver.find_element_by_xpath("//*[@id='su']").click()
time.sleep(2)
ele_string = driver.find_element_by_xpath("//div/h3/a[text()='官网']/../a").text
if (ele_string == u"Selenium - Web Browser Automation"):
print "测试成功,结果和预期结果匹配!"
driver.quit()
这里只利用 两个等号(==)来判断两个字符串是否完全相同,有时候我们还需要对得到的字符串进行切割操作,才能进行去匹配,以后再介绍字符串切割处理在自动化测试结果判断中的使用。
总结:自动化测试最难的在于如何去写断言,如何判断测试结果是否通过。
建议: 以上代码包括以后文章中脚本举例,你还是最好去一行一行抄写,不要直接复制、黏贴到你记事本中。因为,你在书写脚本过程,肯定会犯一些语法和输入错误,在调试脚本过程,通过观察报错信息,直到你解决问题,可以顺利执行脚本,你会得到和收获很多。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。