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