- 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的pyse自动化测试框架
WebUI automation testing framework based on Selenium
介绍: pyse基于selenium(webdriver)进行了简单的二次封装,比selenium提供的方法操作更简洁。
起因:
python + selenium 自动化测试写久了发现selenium(webdriver)提供原生的方法并简便,于是,产生了二次封装的想法。想不到太炫酷的名字,于是各取了两个单词的前两个字母- pyse。
特点:
所有方法只提供xpath定位,webdriver提供了8种定位方法(id\name\class name\tag name\link text\partial link text\xpath\css selector)但xpath一定程度可以替代id\name\class name\tag name 等方法,本框架所提供的click_text()方法可以替代link text方法,所以只用xpath定位对不影响框架对元素的定位能力,又保证了定位方法的一致性。
本框架只是对selenium(webdriver)原方法的简单封装,精简为30个方法,经过我的自动实践,这些方法完全够胜任于我们的自动化工作。
集成了HTMLTestRunner 测试报告,使生成报告变得很简单。
安装及前提条件:
Python2.7 :https://www.python.org/
selenium: https://pypi.python.org/pypi/selenium
安装pyse : 将其克隆到本地,将pyse目录放到..\Python27\Lib\site-packages\目录下。
例子: 请查看demo目录
先看一下百度搜索的例子:
baidu.py
#coding=utf-8from pyse import Pysefrom time import sleep driver = Pyse("chrome") driver.open("https://ww.baidu.com") driver.type("//*[@id='kw']",u"pyse自动化测试") driver.click("//*[@id='su']") sleep(2) driver.quit()
再看一个page object 设计模式的例子
page_object_case.py
#coding=utf-8from pyse import Pysefrom time import sleepclass Page(object): ''' 基本类,用于所页面的继承 ''' login_url = 'http://www.126.com' def __init__(self, selenium_driver, base_url=login_url, parent=None): self.base_url = base_url self.driver = selenium_driver self.timeout = 30 self.parent = parent def _iopen(self,url): url = self.base_url + url self.driver.open(url) assert self.on_page(),'Did not land on %s' % url def iopen(self): self._iopen(self.url) def on_page(self): return self.driver.get_url() == (self.base_url + self.url)class LoginPage(Page): ''' 126邮箱登录页面模型 ''' url = '/' def type_username(self,username): self.driver.type("//*[@id='idInput']",username) def type_password(self,password): self.driver.type("//*[@id='pwdInput']",password) def submit(self): self.driver.click("//*[@id='loginBtn']")def test_user_login(driver, username, password): """ 测试获取的用户名密码 是否可以登录 """ login_page = LoginPage(driver) login_page.iopen() login_page.type_username(username) login_page.type_password(password) login_page.submit()def main(): try: driver = Pyse("chrome") username = 'username' password = 'password' test_user_login(driver, username, password) sleep(3) text = driver.get_text("//span[@id='spnUid']") assert(text == 'username@126.com'),u"用户名称不匹配,登录失败!" finally: # 关闭浏览器窗口 driver.close()if __name__ == '__main__': main()
再看一个使用unittest单元测试框架的例子。
unittest_case.py
#coding=utf-8from pyse import Pyse,TestRunnerfrom time import sleepimport unittestclass baiduTest(unittest.TestCase): def setUp(self): self.driver = Pyse("chrome") self.driver.wait(10) self.base_url = "http://www.baidu.com" def test_case(self): driver = self.driver driver.open(self.base_url) driver.click_text("设置") driver.click_text("搜索设置") sleep(2) driver.click("//a[@class='prefpanelgo']") sleep(1) driver.accept_alert() def tearDown(self): self.driver.quit()if __name__ == '__main__': TestRunner(r".\demo").run()
调用TestRunner()测试类时需要指定一个测试用例的目录,如:E:\mytestpro\test_case 。然后,调用的它的run()方法来运行测试用例。
匹配测试用例文件的规则是*_case.py 。所以,测试文件的命名一定要为 aa_case.py ,a12_case.py等。
它会自动在test_case目录下生成report目录并在其下面生成测试报告。如下:
项目地址:https://github.com/defnngj/pyse
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论