使用phantomjs进行无界面UI自动化测试
PhantomJS(http://phantomjs.org/) 是一个基于WebKit的服务器端JavaScript API。它全面支持web而不需浏览器支持,其快速、原生支持各种Web标准:DOM处理, CSS选择器, JSON, Canvas, 和SVG。 PhantomJS 可以用于页面自动化,网络监测,网页截屏以及无界面测试等。
0.下载安装(以Mac为例)
下载地址:http://phantomjs.org/download.html 下载后进行解压
将 phantomjs-2.0.0-macosx/bin/phantomjs 文件放到 ~/bin/ 路径下,以便于进行工具统一管理
创建软链接,在终端输入 " ln -s ~/bin/phantomjs /usr/local/bin/ " ,用于从终端启动phantomjs
1.运行demo,验证安装是否正常
在终端进入 phantomjs-2.0.0-macosx/examples 目录
运行 " phantomjs hello.js "
输出 " Hello, world! " ,安装成功
2.使用phantomjs访问web,并进行截图
编写测试脚本test.js
var page=require('webpage').create();
page.open('http://leettest.com',function(){
page.viewportSize={width:1920,height:968};
page.render('leettest.png');
phantom.exit();
});
运行测试脚本
phantomjs test.js
查看截图,验证phantomjs访问
3.使用selenium驱动phantomjs,在不启动浏览器的情况下进行UI自动化测试
编写测试脚本(Java)
public static void main(String[] args) throws IOException {
WebDriver driver = new PhantomJSDriver();
driver.get("http://www.baidu.com");
driver.manage().window().maximize();
if(driver.getTitle().contains("百度")){
TakesScreenshot shot = ((TakesScreenshot)driver);
File srcFile=shot.getScreenshotAs(OutputType.FILE);
srcFile.renameTo(new File("/Users/wp/Documents/demo.png"));
}
driver.close();
}
依赖jar包:

运行测试,查看页面截图
使用phantomjs进行无界面UI自动化测试的更多相关文章
- Robot Framework使用Phantomjs进行无界面UI自动化测试
Robot Framework 是一款关键字驱动的验收自动化测试框架,现在在国内使用的越来越广泛了.一种通用的Web UI自动化测试解决方案是Robot Framework+Selenium2Libr ...
- selenium phantomjs java无界面浏览器环境搭建
java selenium搭建无界面浏览器 1.http://phantomjs.org/ 下载windows版phantomjs 2.解压后bin目录下会有exe文件 3.测试代码: package ...
- python之Phantomjs无界面浏览器引擎自动化测试
文字搬运工,本文主要介绍PhantomJS功能,其中有屏幕快照功能,为后面更新[python接口自动化脚本更新版本],其中新版本中新增自动发送邮件功能正文带图片,使用PhantomJS截取图片后发送邮 ...
- selenium2支持无界面操作(HtmlUnit和PhantomJs)
selenium2支持无界面操作(HtmlUnit和PhantomJs) selenium2支持通过各种driver(FirfoxDriver,IternetExplorerDriver,OperaD ...
- 【转载】SELENIUM2支持无界面操作(HTMLUNIT和PHANTOMJS)
SELENIUM2支持无界面操作(HTMLUNIT和PHANTOMJS) selenium2支持通过各种driver(FirfoxDriver,IternetExplorerDriver,OperaD ...
- selenium模块 phantomJs 谷歌无可视界面
参考微博: 什么是selenium 一款基于浏览器自动化的模块 什么是浏览器自动化 通过脚本程序或者python代码,这组程序或者代码表示一些行为动作,selenium可以让这些行为动作映射到浏览器中 ...
- UI自动化测试:App的WebView页面中,当搜索栏无搜索按钮时处理方法
一.遇到的问题 在做移动端的UI自动化测试时,经常会遇到上图所示的搜索框,这里有个麻烦就是搜索框没有"搜索"按钮,UI自动化测试时不能确认搜索. 要解决这个问题,我们可以通过 dr ...
- UI自动化测试的那些事
互联网产品的迭代速度远高于传统软件,尤其是移动APP不但更新频繁,还需要在不同硬件.系统版本的环境下进行大量兼容测试,这就给传统测试方法和测试工具带来了巨大挑战.为满足产品敏捷开发.快速迭代的需求,自 ...
- selenium(六)Headless Chrome/Firefox--PhantomJS停止支持后,使用无界面模式。
简介: 以前都用PhantomJS来进行无界面模式的自动化测试,或者爬取某些动态页面. 但是最近selenium更新以后,'Selenium support for PhantomJS has bee ...
随机推荐
- String----是一个对象
* 字符串可以看成是字符组成的数组,但是js中没有字符类型 * 字符是一个一个的,在别的语言中字符用一对单引号括起来 * 在js中字符串可以使用单引号也可以使用双引号 * 因为字符串可以看成是数组,所 ...
- robotframe 自定义开发库
site-packages(这个路径一定要在系统path路径中)下面创建一个UserDefineLibrary文件夹:目录结构如下 ---- ----- UserDefineLibrary __ in ...
- oracle 将字符串转化为数值型to_number()
select to_number('22.222') from dual
- golang sqlite3 CRUD
package main import ( "database/sql" "fmt" "log" _ "github.com/ma ...
- 深入解析Java中的装箱和拆箱
自己主动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题.本文先讲述装箱和拆箱最主要的东西,再来看一以下试笔试中常常遇到的与装箱.拆箱相关的问题. 下面是本 ...
- MySql+Socket 完成数据库的增查Demo
需求: 利用MySql数据库结合前端技术完成用户的注册(要求不使用Web服务技术),所以 Demo采用Socket技术实现Web通信. 第一部分:数据库创建 数据库采用mysql 5.7.18, 数据 ...
- STM32烧录的常用方式
stm32烧录常用的方式一般为ST-LINK(或者J-tag)下载仿真和ISP下载 一.仿真器下载 仿真器分为J-TAG和SWD仿真,SWD仿真只需要4根线(VCC.GND.CLK.DATA)就可以了 ...
- SQLServer数据库还原:无法在已有的mdf文件上还原文件
如果提示无法在已有的mdf文件上还原文件,请修改如下位置
- PowerBI开发 第十三篇:增量刷新
PowerBI 将要解锁增量刷新(Incremental refresh)功能,这是一个令人期待的更新,使得PowerBI可以加载大数据集,并能减少数据的刷新时间和资源消耗,该功能目前处于预览状态,只 ...
- MQ见解
MQ 消息队列是系统级.模块级的通信.RPC是对象级.函数级通信. 1) 什么是推模式,什么是拉模式 2) 有没有消息丢失情况,如何防止 3) MQ用来解决什么问题 4) 你们用的什么MQ,为什么要用 ...