浅谈pyse

2019-09-23 10:14:39 浏览数 (1)

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

0 人点赞