浅谈pyse

yu今天想给大家介绍一个方便又神奇的好东东----PYSE!

这是个什么东西呢?

Python + selenium = pyse

现在都看懂了吧!就是简单的Python和selenium融合,做的二次开发,使用起来比原来的selenium还要简单!

它有多重定位方法,和selenium一样,支持id、name、class、link_text、xpath、css定位,默认是css定位。

在对selenium进行简单封装的同时,将其中的方法简化成30个方法,这些方法用于web自动化测试将会比原来方便许多。

例如,关于断言,可以自带断言方法,可以用来断言text、url、title等。还可以自动生成HTML测试报告。

在使用pyse之前,我们需要下载安装一下,在这里,我建议大家使用git仓库工具,因为我们这个项目是从github上下载的,当然你如果手动下载也可以,只是需要多解压一步而已。

(git安装步骤就不详说了,网上有,直接下载安装即可)

git clone https://github.com/defnngj/pyse.git

对了,还有件事忘说了,使用pyse之前我们必须同时配置好Python环境和selenium的环境,这个分别在本公众号回复“Python”和“selenium”就可以拿到搭建基础环境的方法了。

在所有的东西都下载完之后,我们还需要执行一步pyse的安装操作,就可以使用pyse啦!

 python setup.py install

这样,我们的pyse就算安装完毕了,我们可以开始我们的第一个例子了:

新建一个文件夹,在里面创建一个test.py文件:

import pyse

class TestBD(pyse.TestCase):

def test_baidu(self):

self.open('https://www.baidu.com')#输入网址

self.type('#kw',"selenium")#输入css,已经键入参数

self.click("#su")#触发click事件

self.assertTitle("search by baidu")#添加标题断言

#运行代码

test=pyse.TestRunner()

test.run()

#TestRunner() 默认匹配当前目录下"test*.py"的文件并执行。当然也可以指定测试目录,例如: TestRunner("path/you/project/test_case/") # 注意用斜线"/"表示路径。

来运行一下

运行完了之后,会生成报告,我们可以在文件夹里面查看:

点击html文件,查看报告

告诉我们运行出现错误,点击fail,查看错误在哪,我们将断言标题的内容(assertTitle("selenium_百度搜索"))修改成‘selenium_百度搜索’再测试一次。

这一次我们运行结束后再查看一次报告。

这次结果就没有问题了。运行测试成功。

本环境是采用Chrome浏览器和Chromedriver完成测试的,除此之外,pyse还支持其他的浏览器:

geckodriver(Firefox):

https://github.com/mozilla/geckodriver/releases

Chromedriver(Chrome):

https://sites.google.com/a/chromium.org/chromedriver/home

IEDriverServer(IE):

http://selenium-release.storage.googleapis.com/index.html

operadriver(Opera):

https://github.com/operasoftware/operachromiumdriver/releases

MicrosoftWebDriver(Edge):

https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver

最后我们来看看pyse的api吧

1、wait_element 用来等一个元素去展示

2、get_element 用来获取一个元素

3、open 打开一个web测试的URL

driver.open("https://www.baidu.com")

4、max_window 将窗口最大化

driver.max_window()

5、set_window设置窗口的宽和高

driver.set_window(wide,high)

6、type 获取元素所在位置

driver.type("css=>#el","selenium")

7、clear 清除输入框里面的内容

driver.clear("css=>#el")

8、click 对某元素触发点击事件

driver.click("css=>#el")

9、right_click 右击某元素

driver.right_click("css=>#el")

10、move_to_element 将鼠标放在该元素上面

driver.move_to_element("css=>#el")

11、double_click 双击某元素

driver.double_click("css=>#el")

12、drag_and_drop 拖拽一个元素一定的距离,然后把它放下

driver.drag_and_drop("css=>#el","css=>#ta")

13、click_text 点击元素上的超链接文字

driver.click_text("新闻")

14、close 模拟用户单击弹出窗口或选项卡标题栏中的“关闭”

driver.close()

15、quit 退出驱动,关闭所有窗口

driver.quit()

16、submit 提交表单

driver.submit("css=>#el")

17、F5 刷新当前页面

driver.F5()

18、js 执行js脚本

driver.js("window.scrollTo(200,1000);")

19、get_attribute 获取一个元素属性的值

driver.get_attribute("css=>#el","type")

20、get_text 获取元素上的文字信息

driver.get_text("css=>#el")

21、get_display 获取要显示的元素,返回的结果为真或假。

driver.get_display("css=>#el")

22、get_title 获取当前窗口的标题

driver.get_title()

23、get_url 获取当前页面的网址

driver.get_url()

24、get_alert_text 获取提醒窗口的文字

driver.get_alert_text()

25、wait 执行时所需要等候的时间

driver.wait(10)

26、accept_alert 确定提醒窗口

driver.accept_alert()

27、dismiss_alert 忽略提示窗口

driver.dismiss_alert()

28、switch_to_frame 切换到指定模式(获取元素)

driver.switch_to_frame("css=>#el")

29、switch_to_frame_out 切换成更高级别的模式

driver.switch_to_frame_out()

30、open_new_window 打开新窗口并切换到新打开的窗口

driver.open_new_window("link_text=>注册")

31、get_screenshot 对当前页面进行截图

driver.get_screenshot('/Screenshots/foo.png')

32、sleep 睡眠(操作与操作之间的间隔时间)

sleep(seconds)

关于自动化测试pyse的介绍就到这里啦,大家有兴趣的可以动手试试啦!有问题可以私信提问我哦!

本文分享自微信公众号 - Python乱炖(Cooking_python),作者:我被狗咬了

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-08-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 知否知否-----selenium知多少(二)

    上期我们讲了一些selenium一些最近的元素定位,触发事件,等待等等,今天我们继续来看看接下来的知识点。

    我被狗咬了
  • 用Python写个在线Python的网站怎么样

    前几天,一个朋友提出了一个建议,如何用python写出python的解释器,我感觉这是一个很好的问题,于是就去看看,打算用python写一个试试,后来我发现一个...

    我被狗咬了
  • python爬取考研网的信息

    https://yz.chsi.com.cn/zsml/queryAction.do

    我被狗咬了
  • 前端进阶第4周打卡题目汇总

    1. 解释一下在js里,0.1+0.2为什么等于0.30000000000000004,如何通过代码解决这个问题?

    徐小夕
  • selenium的一些使用方法

    新建实例driver = webdriver.Chrome() 1.通过标签属性Id查找元素 方法:find_element_by_id(element...

    周小董
  • 把Cloud for Customer的attachment视图直接放到工作中心视图去

    版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。 https://jerry.blog.csdn.net/article/detai...

    Jerry Wang
  • k8s常用命令

    Java学习录
  • InPanel Linux 服务器管理面板

    安装完成后请设置管理员用户名和密码,如果直接回车,则使用默认的用户名 admin 和密码 admin 。 设置完后,打开给定的链接地址即可访问您的 InPan...

    Inkedus
  • JPG、PNG、SVG 和 WEBP 格式图片的业务场景对比

    Leophen
  • 使用sklearn做单机特征工程

    出自博客园 链接:http://www.cnblogs.com/jasonfreak/p/5448385.html 1 特征工程是什么? 有这么一句话在业界广...

    智能算法

扫码关注云+社区

领取腾讯云代金券