Casperjs / Phantomjs - 在加载谷歌加主页面时挂起

时间:2014-02-06 16:16:59

标签: javascript phantomjs casperjs

成功登录后,我尝试导航到https://plus.google.com/u/0/?tab=wX,但casperjs挂起。

最后一个输出是:

[debug] [phantom] Navigation requested:
url=https://clients6.google.com/static/proxy.html?jsh=m;/_/scs/apps-static/_/js/k=oz.gapi.en.Z6gj5B0lzyA.O/m=__features__/am=IQ/rt=j/d=1/t=zcms/rs=AItRSTPU0_gqMrtQ831rDdqYv8Z1ZnxcbA#parent=https://tal kgadget.google.com&rpctoken=640385943, type=Other, willNavigate=true, isMainFrame=false
[debug] [phantom] Navigation requested:
url=https://plus.google.com/hangouts/_/pre?hl=en&authuser=0, type=Other, willNav igate=true, isMainFrame=false
[debug] [phantom] Navigation requested:
url=https://plus.google.com/u/0/_/blank, type=Other, willNavigate=true, isMainFr ame=false

好像它挂在了环聊的iframe上。如何阻止加载某些内部URL?

我试过了:

// try to hide hangouts
casper.on('page.resource.requested', function (requestData, request) {
    if (requestData.url.indexOf('plus.google.com/hangouts') != -1) {
        this.echo('RESOURCE ABOTRED ' + requestData.url);
        request.abort();
        return;
    }
});

casper.on('navigation.requested', function (url, navigationType, navigationLocked, isMainFrame) {
    if (url.indexOf('plus.google.com/hangouts') != -1 || url.indexOf('talkgadget') != -1) {
        // this.echo('ALARM!!!' + url);
        willNavigate = false;
        // request.abort();
        return false;
    }
});

但它根本没有帮助,因为请求的导航是信息事件我无法阻止它!

请告知。

似乎谷歌+主页完全受到保护,无法使用幻像。

1 个答案:

答案 0 :(得分:1)

看来这种方法可行:

casper.on('navigation.requested', function (url, navigationType, navigationLocked, isMainFrame) {
    if (url.indexOf('plus.google.com/hangouts') != -1 || url.indexOf('facebook.com') != -1) {
      this.page.navigationLocked = true;
    }else{
      this.page.navigationLocked = false;
    }
});

更新:出现这种方法可能会阻止导航其他并发步骤,回到绘图板......

相关问题