phantomjs简介

##phantom能做那些事 官网上列了一下几个作用:

  • 做单元测试
  • 对页面截屏
  • 操作页面的DOM
  • 可以做页面的性能测试

总结起来就是自动化测试 ⊙﹏⊙b汗

##phantom基本用法

###加载页面 var page = require('webpage').create(); page.open('http://www.baidu.com', function(status) { console.log("Status: " + status); if(status === "success") { //加载成功 } phantom.exit();//退出 }); 通过page对象的open方法来加载页面,在后面的回调函数里做页面加载后你想做的事。 比如截屏

page.render('baidu.png')

比如计算加载时间: 在加载之前记录下当前时间,再待加载成功后记录下时间。

还可以操作页面里的DOM:

var page = require('webpage').create();
page.open('http://www.sample.com', function() {
  page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
    page.evaluate(function() {
      $("button").click();
    });
    phantom.exit()
  });

可以通过includeJs插入网上的js库(或者通过injectJs插入本地js文件) 在传递给evaluate的函数回在页面所在浏览器环境下执行,也就是说你可以执行所有的DOM操作

还可以分析网络请求:

var page = require('webpage').create();
page.onResourceRequested = function(request) {
  console.log('Request ' + JSON.stringify(request, undefined, 4));
};
page.onResourceReceived = function(response) {
  console.log('Receive ' + JSON.stringify(response, undefined, 4));
};
page.open(url);

每当有发出请求或者有请求返回时就会触发onResourceRequested或者onResourceReceived事件。可以在事件的回调函数里查看或者修改请求信息

有了这些API就可以发挥想象来自动化的完成很多任务了。

具体的API介绍请看官网

##最后说下phantom的不足

  • API略少。比如,只能在页面加载后添加js不能在页面加载完成前注入js
  • 文档不够人性化

总的来说是一个不错的自动化测试产品,适合程序员拿来自测和分析页面。

转载于:https://my.oschina.net/zhaoxiaoben/blog/374988

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值