将onAuthPrompt()与CasperJS和SlimerJS一起使用

时间:2013-10-14 04:46:26

标签: casperjs http-authentication slimerjs

SlimerJS添加了onAuthPrompt回调。有可能让它与CasperJS一起使用吗?

我发现提及phantomjs或slimerjs对象可以casper.page获得,然后以下答案说casper.page仅在调用casper.start()后可用:https://stackoverflow.com/a/16629231/841830 < / p>

所以我尝试了这段代码。 onAuthPrompt代码取自文档;我刚刚添加了一个日志行以确保它有效。

casper.test.begin("first",function suite(test){
  casper.start();

  casper.page.onAuthPrompt = function (type, url, realm, credentials) {
    console.log("onAuthPrompt: type="+type+",url="+url+",realm="+realm+",credentials="+credentials);    //TEMP
    credentials.username = "laurent";
    credentials.password = "1234";
    return true;
    };

  casper.thenOpen(url,function(){
    console.log('Loaded:'+url);
    test.assertSelectorHasText('#msg','');
    this.capture('1.png');
    });

  casper.run(function(){test.done();});
});

它加载url(不需要auth),然后建立XMLHttpRequestEventSource连接,这需要身份验证。我看到密码提示弹出,但我的onAuthPrompt()函数没有被调用。

我做错了什么,或者这不是onAuthPrompt的用途,或者它可能是我可以报告的错误(但在这种情况下,你认为问题出在CasperJS或SlimerJS中吗?)。

1 个答案:

答案 0 :(得分:1)

根据文档,版本0.9.0中添加了onAuthPrompt回调,尚未发布。

您可以查看Git仓库here的主分支中的文档。

还有最新发布的文档(v0.8.3)here