PhantomJs页面自动化错误

时间:2014-03-16 20:31:53

标签: javascript automation phantomjs

我正在尝试使用PhantomJS实验页面/导航自动化。但是,在尝试打开URL并导航到其他页面时,我发现页面加载的次数不止一次。

以下是我尝试搜索术语并使用下一个按钮导航到其他页面的方案。但是,如日志中所示,后续页面不止一次打开,并且它会以指数方式增长,也会有一些空白回调。

不确定我一定做错了什么。指针的任何帮助都会有所帮助。

function pageRequest(url){

    function callback(){
        console.log("pass  ----------------- " );
        page.includeJs("//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js", function() {
            var x = page.evaluate(function() {
                    var ret = null;
                  $("a").each(function(ele, i){
                    // console.log($(i).attr("href"));
                    if($(i).text().toLowerCase().indexOf("next")  != -1){
                        // console.log("Hurray !!");
                        ret  = $(i).attr("href");
                        return $(i).attr("href");
                    }

                  });
                  return ret;

            });
            console.log(x);
            // return;
            if(x){
                page.open("http://torrentz.in" + x, callback);
            }
        });
    }

    var page = require('webpage').create();

    page.onConsoleMessage = function(msg) {
      console.log('Page title is ' + msg);
    };

    page.open(url, callback);
}

pageRequest("http://torrentz.in/search?f=test");

//LOGS
$ phantomjs capture.js 
pass  ----------------- 
/search?f=test&p=1
pass  ----------------- 
/search?f=test&p=2
/search?f=test&p=2
pass  ----------------- 
/search?f=test&p=2
/search?f=test&p=2
/search?f=test&p=2
pass  ----------------- 
pass  ----------------- 
pass  ----------------- 
pass  ----------------- 
/search?f=test&p=3
/search?f=test&p=3
/search?f=test&p=3
/search?f=test&p=3
/search?f=test&p=3
/search?f=test&p=3
/search?f=test&p=3
pass  ----------------- 
pass  ----------------- 
pass  ----------------- 
pass  ----------------- 
pass  ----------------- 
pass  ----------------- 
pass  ----------------- 
/search?f=test&p=4
/search?f=test&p=4
/search?f=test&p=4
/search?f=test&p=4
/search?f=test&p=4
/search?f=test&p=4
/search?f=test&p=4
/search?f=test&p=4
/search?f=test&p=4
/search?f=test&p=4
/search?f=test&p=4
/search?f=test&p=4
/search?f=test&p=4
/search?f=test&p=4
pass  ----------------- 
pass  ----------------- 
pass  ----------------- 
pass  ----------------- 
pass  ----------------- 
^C

1 个答案:

答案 0 :(得分:0)

你可以尝试创建一个这样的新页面:

if(x){
  page = require('webpage').create();
  page.open("http://torrentz.in" + x, callback);
}