成功登录后,我尝试导航到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;
}
});
但它根本没有帮助,因为请求的导航是信息事件我无法阻止它!
请告知。
似乎谷歌+主页完全受到保护,无法使用幻像。
答案 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;
}
});
更新:出现这种方法可能会阻止导航其他并发步骤,回到绘图板......