前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅谈pyse

浅谈pyse

作者头像
我被狗咬了
发布2019-09-23 10:14:39
1.1K0
发布2019-09-23 10:14:39
举报
文章被收录于专栏:Python乱炖Python乱炖

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啦!

代码语言:javascript
复制
 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的介绍就到这里啦,大家有兴趣的可以动手试试啦!有问题可以私信提问我哦!

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

本文分享自 Python乱炖 微信公众号,前往查看

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

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

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