前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python+Selenium基础篇之5-第一个完整的自动化测试脚本

Python+Selenium基础篇之5-第一个完整的自动化测试脚本

作者头像
测试开发社区
发布2019-11-12 10:12:44
1.7K0
发布2019-11-12 10:12:44
举报
文章被收录于专栏:测试开发社区

分类专栏: Python+Selenium自动化测试从零到框架设计系列

作者 | Anthony_tester,300w+访问量博主,Oracle测试开发工程师。

地址 | https://blog.csdn.net/u011541946/article/details/68484368

声明 | 本文是 Anthony 原创,已获授权发布,未经原作者允许请勿转载

前面文章,我们介绍了如何采用XPath表达式去定位网页元素,在掌握了如何抓取或者如何书写精确的XPath表达式后,我们可以开始写自己的第一个真正意义上的webui 自动化测试脚本,就相当于,你在学习Python,如何在控制台打印Hello,Python!一样。

我们的测试用例是:打开百度首页,搜索Selenium,然后检查搜索列表,有没有Selenium这个官网链接选项。

在写自动化脚本之前,需要明确手动脚本的步骤,然后去拆分到具体没一个步骤做什么,考虑好了之后,才开始动手去写脚本。我把这个测试场景分拆如下步骤:

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脚本如下

代码语言:javascript
复制
# coding=utf-8
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模块,等待2秒

time.sleep(2)
# 这里通过元素XPath表达式来确定该元素显示在结果列表,从而判断Selenium官网这个链接显示在结果列表。
# 这里采用了相对元素定位方法/../
# 通过selenium方法is_displayed() 来判断我们的目标元素是否在页面显示。
driver.find_element_by_xpath("//div/h3/a[text()='官网']/../a/em[text()='Selenium']").is_displayed()
driver.quit()

第二种断言写法:

代码语言:javascript
复制
# coding=utf-8
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()

这里只利用 两个等号(==)来判断两个字符串是否完全相同,有时候我们还需要对得到的字符串进行切割操作,才能进行去匹配,以后再介绍字符串切割处理在自动化测试结果判断中的使用。 总结:自动化测试最难的在于如何去写断言,如何判断测试结果是否通过。 建议:以上代码包括以后文章中脚本举例,你还是最好去一行一行抄写,不要直接复制、黏贴到你记事本中。因为,你在书写脚本过程,肯定会犯一些语法和输入错误,在调试脚本过程,通过观察报错信息,直到你解决问题,可以顺利执行脚本,你会得到和收获很多。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档