zoukankan      html  css  js  c++  java
  • PhantomJS

    1. 什么是PhantomJS?

      PhantomJS是一个基于webkit的JavaScript API。它使用QtWebKit作为它核心浏览器的功能,使用webkit来编译解释执行JavaScript代码。任何你可以在基于webkit浏览器做的事情,它都能做到。它不仅是个隐形的浏览器,提供了诸如CSS选择器、支持Web标准、DOM操作、JSON、HTML5、Canvas、SVG等,同时也提供了处理文件I/O的操作,从而使你可以向操作系统读写文件等。PhantomJS的用处可谓非常广泛,诸如网络监测、网页截屏、无需浏览器的 Web 测试、页面访问自动化等。

      目前都是基于命令行的调用,还没有代码直接调用,java只能通过Runtime.getRuntime().exec("exefile");执行命令。

    2. PhantomJS能做什么?

      动态执行js脚本、网页截图、自动化网页测试。

    3. PhantomJS下载包example里面的例子介绍

    arguments.js 获取输入参数
    child_process-examples.js 启动子线程执行命令行命令
    colorwheel.js 执行canvas代码,画一个圆,并输出png图片
    countdown.js 倒计时demo
    detectsniff.js 监听浏览器的navigator属性,看网页有没有读取这个属性
    echoToFile.js 写文件操作
    features.js 显示浏览器支持的和不支持的特性
    injectme.js 注入js代码
    loadspeed.js 统计请求网页需要的时间,并不一定执行完了js
    loadurlwithoutcss.js 不请求css文件
    modernizr.js 浏览器特性功能检测
    module.js 调用模块
    netlog.js 监听request和response
    netsniff.js 请求数据统计
    openurlwithproxy.js 通过代理服务器访问
    outputEncoding.js 设置输出字符的编码方式
    page_events.js 事件监听
    pagecallback.js 可能在网页里面调用window.callPhantom通知给phantomjs,非常实用。
    phantomwebintro.js 抓取网页的内容
    post.js 发送post请求
    postjson.js 发送post请求(Data是JSON)
    postserver.js 一台服务器和一个post请求
    printenv.js phantomjs的环境变量
    printheaderfooter.js 这个不知道是干嘛的,而且还有一个错误,第67行要加一个var,也就是var paperSize = page.paperSize;
    printmargins.js 设置截图的边距
    rasterize.js 截图
    render_multi_url.js 多页面截图
    responsive-screenshot.js 多个截图尺寸
    run-jasmine.js 定时检测页面是否加载完成
    run-jasmine2.js 定时检测页面是否加载完成
    run-qunit.js 定时检测页面是否加载完成
    scandir.js 扫描目录下的文件
    server.js 创建一个服务器
    serverkeepalive.js 创建一个keepalive的服务器
    simpleserver.js 创建一个简单服务器
    sleepsort.js 这个也不知道是干嘛的
    stdin-stdout-stderr.js 读取控制台信息
    universe.js 标准模块写法
    unrandomize.js 在onInitialized里重新定义js原始函数,比如Math.random
    useragent.js 修改userAgent的值
    version.js 显示phantomjs版本
    waitfor.js 定时检测页面是否加载完成
    walk_through_frames.js 主frame和子frame之间切换

    9. PhantomJS技巧

    增加--ignore-ssl-errors=true设置,客户端无证书也可以访问。不加就访问不了。

    phantomjs.exe --ignore-ssl-errors=true fetch_web_content.js https://localhost/index.html

  • 相关阅读:
    深入NET框架
    解决idea中maven的pom文件不会自动下载jar包问题
    JSP中的作用域
    转发与重定向
    JSP内置对象
    JNDI与连接池
    文件上传
    七大设计原则
    第六章 初始继承和多态
    C#和.NET框架
  • 原文地址:https://www.cnblogs.com/angelshelter/p/6815134.html
Copyright © 2011-2022 走看看