欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python之Phantomjs*面浏览器引擎自动化测试

程序员文章站 2024-03-21 23:53:04
...

原文链接:python之Phantomjs*面浏览器引擎自动化测试

python之Phantomjs*面浏览器引擎自动化测试
文字搬运工,本文主要介绍PhantomJS功能,其中有屏幕快照功能,为后面更新【python接口自动化脚本更新版本】,其中新版本中新增自动发送邮件功能正文带图片,使用PhantomJS截取图片后发送邮件,已发版本可看往期【python脚本实现接口自动化轻松搞定上千条接口用例】

PhantomJS是一个*面的,基于 WebKit(WebKit是一个开源的浏览器引擎,Chrome,Safari就是用的这个浏览器引擎) 的服务器端 JavaScript API。它原生支持多种web 标准:DOM 操作,CSS选择器,JSON,Canvas 以及SVG。

PhantomJS主要场景

1、无UI界面的网站测试
2、屏幕快照
3、页面操作自动化
4、网络监控
使用PhantomJS,而不用Chromedriver和firefox,主要是因为PhantomJS的静默方式(后台运行,不打开浏览器)

与python+selenium对比

优点:采用的模拟浏览器的内核,高仿浏览器行为,可以直接在浏览器上撸 (效率上要高不少)

缺点:有些验证码**绕不过,没有python+selenium这种处理起来方便,但这个缺点必须依赖浏览器,如果是服务器,这种没有桌面终端的,更别提浏览器,基本就凉凉。

综合:可将Selenium + PhantomJS + python 简单实现爬虫的功能 安装使用

文档链接:

PhantomJS官方文档:http://phantomjs.org/api/command-line.html
PhantomJS官方下载:http://phantomjs.org/download
PhantomJS官方地址:http://phantomjs.org/
PhantomJS官方API:http://phantomjs.org/api/
PhantomJS官方示例:http://phantomjs.org/examples/
PhantomJS GitHub:https://github.com/ariya/phantomjs/

环境变量配置

1.下载完成后放到自己喜欢的一个位置,然后进入bin文件夹,然后把这个路径添加到环境变量里面。
2.环境变量配置:vi ~/.bash_profile,在最下面添加 alias phantomjs=’~/PATH/phantomjs’,其中PATH为解压后phantomjs文件所在路径,例如:~/Documents/PhantomJS/bin/phantomjs,最后source ~/.bash_profile 生效。
3.打开终端,输入phantomjs回车,如果你看到phantomjs>,说明你的环境变量已配置好
4.输入phantom.exit()退出

例子:

1.chrom浏览器自动搜索

from selenium import webdriver
from time import sleep
#创建浏览器对象 驱动为浏览器的路径
bro = webdriver.Chrome("./chromedriver.exe")
url = "https://www.baidu.com"7 # 发送请求
bro.get(url)
#让百度指定词条的搜索
text = bro.find_element_by_id('kw')
#发送关键字
text.send_keys('python')
#点击搜索按钮
button = bro.find_element_by_id('su')
button.click()
#关闭浏览器
bro.quit()

2.phantomjs*面浏览器,其自动化流程上述操作谷歌自动化流程一致

from selenium import webdriver
from time import sleep
bro = webdriver.PhantomJS('/usr/local/bin/phantomjs')
url = "https://www.baidu.com"
#发送请求
bro.get(url)
bro.save_screenshot('./test1.png')
#让百度指定词条的搜索
text = bro.find_element_by_id('kw')
#发送关键字
text.send_keys('python')
bro.save_screenshot('./test2.png')
#点击搜索按钮
button = bro.find_element_by_id('su')
button.click()
sleep(3)
bro.save_screenshot('./test3.png')
#关闭浏览器
bro.quit()

3.豆瓣网电影排行榜滚动条数据

from selenium import webdriver
from time import sleep3 url = 'https://movie.douban.com/typerank?type_name=%E5%96%9C%E5%89%A7&typ
e=24&interval_id=100:90&action='
bro = webdriver.PhantomJS('/usr/local/bin/phantomjs') # phantomjs运行路径
bro.get(url)
sleep(1)
bro.save_screenshot("./test1.png")
js = 'window.scrollTo(0,document.body.scrollHeight)'
 执行js代码 滚动条
bro.execute_script(js)
sleep(1)
bro.save_screenshot('./test2.png')
#获取页面数据
page_source = bro.page_source
print(page_source)

python脚本实现接口自动化轻松搞定上千条接口用例
Htop/Glances/Dstat性能测试系统监控工具领域的瑞士军刀
好用的python性能测试神器–Locust
Linux上,最常用的一批命令解析【精选】
玩转Nginx location配置

预告:【即将更新一个python接口自动化脚本新版本,增加多个功能,敬请期待!!】
赶快动动你的手指头,关注起来吧!