IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    debuging phantomjs

    notsobad发表于 2012-10-29 17:24:00
    love 0

    phantomjs的文档还比较简单,最近使用发现的一些问题:

    无法设定载入网页的超时

    解决:单独写程序来监控这些phantomjs进程,超时kill

    基于这个https://github.com/lgxz/lprm 修改而来。

    无法跟踪某些网页跳转

    如这种html的meta跳转,phantomjs无法跟踪

    wangxh@mac : ~/x$ curl -vv http://www.javaworld.com.tw/
    * About to connect() to www.javaworld.com.tw port 80 (#0)
    *   Trying 61.63.52.65...
    * connected
    * Connected to www.javaworld.com.tw (61.63.52.65) port 80 (#0)
    > GET / HTTP/1.1
    > User-Agent: curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8r zlib/1.2.5
    > Host: www.javaworld.com.tw
    > Accept: */*
    > 
    < HTTP/1.1 200 OK
    < Server: Apache-Coyote/1.1
    < ETag: W/"78-1197971228000"
    < Last-Modified: Tue, 18 Dec 2007 09:47:08 GMT
    < Content-Type: text/html
    < Content-Length: 78
    < Date: Mon, 29 Oct 2012 09:30:42 GMT
    < 
    <meta HTTP-EQUIV="REFRESH" content="0; url=http://www.javaworld.com.tw/jute">
    

    load事件被多次触发

    截图出现黑色背景

    一般出现在网页没有设置背景色的情况下,这是背景色应该是透明,而输出jpg图像是,没办法表示透明,于是被转成了黑色,所以当网页没有背景色的时候,给它设置个背景色即可。

    page.evaluate(function () {
        if(!document.body.style.backgroundColor){
            document.body.style.backgroundColor = 'white';
        }
    });
    

    事件触发

    phantomsjs的事件触发顺序

    资源

    https://groups.google.com/forum/?fromgroups=#!topic/phantomjs/_Oj_ZksE4R0



沪ICP备19023445号-2号
友情链接