- Selenium + Python 自动化测试环境搭建
- 怎样开始用selenium进行自动化测试(个人总结)
- 关于学习selenium进行自动化测试所需要学的知识
- Selenium 使用介绍
- Selenium 命令列表
- Selenium 快速入门
- Web软件测试工具Selenium:如何选取元素
- Selenium RC在浏览器兼容性测试的用武之地
- selenium开源功能测试工具
- Selenium执行测试脚本稳定性的一些经验分享交流
- Web测试工具Selenium入门心得
- Selenium自动化测试用例设计注意事项(一)
- 基于TestNG 与Selenium 的自动化测试设计与实施
- 毁三观的 Selenium 自动化测试框架
- Selenium自动化测试用例设计注意事项(二)
- 用Selenium实现页面自动化测试
- Selenium实战:.Net下的自动化测试搭建
- 用 Selenium 自动化验收测试(一)
- 用 Selenium 自动化验收测试(三)
- 使用开源工具SeleniumRC进行功能测试
- 用 Selenium 自动化验收测试(二)
- 用 Selenium 自动化验收测试(四)
- 应用Selenium和Ruby进行面向领域的Web测试
- WebTest比拼Selenium:模拟和真实浏览器上的测试
- Selenium实例:AJAX自动化测试应用
- Selenium-集成测试工具
- 基于FireFox的测试插件 – Selenium IDE
- 基于Selenium和VSTT的网站测试自动化系统
- selenium参考手册中文翻译
- 《Selenium2自动化测试实战–基于Python语言》
- selenium webdriver (python) 第三版
- selenium-webdriver(python) (十六) –unittest 框架
- selenium webdriver (python) 第一版PDF
- selenium-webdriver(python) (十五) — 鼠标事件
- selenium-webdriver(python) (十四) — webdriver原理
- selenium-webdriver(python) (十三) — cookie处理
- 轻松自动化—selenium-webdriver(python) (十二)
- 轻松自动化—selenium-webdriver(python) (十一)
- 轻松自动化—selenium-webdriver(python) (十)
- 轻松自动化—selenium-webdriver(python) (八)
- 轻松自动化—selenium-webdriver(python) (七)
- 轻松自动化—selenium-webdriver(python) (六)
- 轻松自动化—selenium-webdriver(python) (五)
- 轻松自动化—selenium-webdriver(python) (三)
- 轻松自动化—selenium-webdriver(python) (二)
- 轻松自动化—selenium-webdriver(python) (一)
- 译:selenium webdriver (python)
- 菜鸟学自动化测试(九)—-WebDirver
- 菜鸟学自动化测试(八)—-selenium 2.0环境搭建(基于maven)
- Selenium3.0 自动化测试
- JavaScript(Node.js)+ Selenium自动化测试
- selenium操作隐藏的元素
- selenium处理select标签的下拉框
- 在Python中实现PageFactory模式
- 《selenium2 Java 自动化测试实战(第二版)》 更新2016.5.3
- 基于selenium的pyse自动化测试框架
- 自动化基础普及之selenium是啥?
- 在做自动化测试之前你需要知道的
- 自动化测试如何解决验证码的问题
- 菜鸟学自动化测试(六)—-selenium 命令之文字范本匹配
- 菜鸟学自动化测试(五)—–selenium命令之定位页面元素
- 菜鸟学自动化测试(四)—-selenium 命令之验证页面元素
- 菜鸟学自动化测试(三)—-selenium 命令
- 菜鸟学自动化测试(二)—-selenium IDE 功能扩展
- 菜鸟学自动化测试(一)—-selenium IDE
- selenium RC 环境配置
- Selenium的基本使用
- 敏捷自动化测试
- Web测试工具Selenium入门心得
selenium-webdriver(python) (十六) –unittest 框架
学习unittest 很好的一个切入点就是从selenium IDE 录制导出脚本。相信不少新手学习selenium 也是从IED 开始的。
IDE学习参考:
菜鸟学自动化测试(一)--selenium IDE
借助IED 录制脚本
将脚本导出,保存为baidu.py ,通过python IDLE编辑器打开。如下:
from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.support.ui import Selectfrom selenium.common.exceptions import NoSuchElementExceptionimport unittest, time, reclass Baidu(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() self.driver.implicitly_wait(30) self.base_url = "http://www.baidu.com/" self.verificationErrors = [] self.accept_next_alert = True def test_baidu(self): driver = self.driver driver.get(self.base_url + "/") driver.find_element_by_id("kw").send_keys("selenium webdriver") driver.find_element_by_id("su").click() driver.close() def is_element_present(self, how, what): try: self.driver.find_element(by=how, value=what) except NoSuchElementException, e: return False return True def is_alert_present(self): try: self.driver.switch_to_alert() except NoAlertPresentException, e: return False return True def close_alert_and_get_its_text(self): try: alert = self.driver.switch_to_alert() alert_text = alert.text if self.accept_next_alert: alert.accept() else: alert.dismiss() return alert_text finally: self.accept_next_alert = True def tearDown(self): self.driver.quit() self.assertEqual([], self.verificationErrors)if __name__ == "__main__": unittest.main()
加入unittest框架后,看上去比我们之前见的脚本复杂了很多,除了中间操作浏览器的几行,其它都看不懂,不要急,我们来分析一下~!
框架分析
import unittest
相想使用unittest框架,首先要引入unittest 包,这个不多解释。
class Baidu(unittest.TestCase):
Baidu类继承unittest.TestCase 类,从TestCase类继承是告诉unittest模块的方式,这是一个测试案例。
def setUp(self): self.driver = webdriver.Firefox() self.base_url = "http://www.baidu.com/"
setUp 用于设置初始化的部分,在测试用例执行前,这个方法中的函数将先被调用。这里将浏览器的调用和URL的访问放到初始化部分。
self.verificationErrors = []
脚本运行时,错误的信息将被打印到这个列表中。
self.accept_next_alert = True
是否继续接受下一下警告(字面意思,没找到解释!)
def test_baidu(self): driver = self.driver driver.get(self.base_url + "/") driver.find_element_by_id("kw").send_keys("selenium webdriver") driver.find_element_by_id("su").click()
test_baidu中放置的就是我们的测试脚本了,这部分我们并不陌生;因为我们执行的脚本就在这里。
def is_element_present(self, how, what): try: self.driver.find_element(by=how, value=what) except NoSuchElementException, e: return False return True
is_element_present函数用来查找页面元素是否存在,在这里用处不大,通常删除。
因为判断页面元素是否存在一般都加在testcase中。
def is_alert_present(self): try: self.driver.switch_to_alert() except NoAlertPresentException, e: return False return True
对弹窗异常的处理
def close_alert_and_get_its_text(self): try: alert = self.driver.switch_to_alert() alert_text = alert.text if self.accept_next_alert: alert.accept() else: alert.dismiss() return alert_text finally: self.accept_next_alert = True
关闭警告和对得到文本框的处理,如果不熟悉python的异常处理和if 语句的话,请去补基础知识,这里不多解释。
def tearDown(self): self.driver.quit() self.assertEqual([], self.verificationErrors)
tearDown 方法在每个测试方法执行后调用,这个地方做所有清理工作,如退出浏览器等。
self.assertEqual([], self.verificationErrors) 是个难点,对前面verificationErrors方法获得的列表进行比较;如查verificationErrors的列表不为空,
输出列表中的报错信息。
而且,这个东西,也可以将来被你自己更好的调用和使用,根据自己的需要写入你希望的信息。(rabbit 告诉我的)
if __name__ == "__main__": unittest.main()
unitest.main()函数用来测试 类中以test开头的测试用例
执行结果
这样一一分析下来,我们对unittest 框架有了初步的了解。运行脚本,因为引入了unittest 框架,所以控制台输出了脚本执行情况的信息。
>>> ========================= RESTART ================================ >>> .----------------------------------------------------------------------Ran 1 test in 10.656s OK>>>
很帅吧!? 后面将以unittest 为基础,向新的征程进发~!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论