编程语言
首页 > 编程语言> > javascript-PhantomJS使用基本身份验证返回null

javascript-PhantomJS使用基本身份验证返回null

作者:互联网

我试图在具有基本始终身份验证的页面上使用PhantomJS,例如,此页面

http://alexturpin.net/auth(测试:玫瑰花蕾)

使用以下代码

var webpage = require('webpage');

page = webpage.create();
page.settings = {
    userName: "test",
    password: "rosebud"
};

page.open("http://alexturpin.net/auth/", function(status) {
    console.log(status);
    var retval = page.evaluate(function() {
        return "test";
    });
    console.log(retval);
});

我得到这个输出

$phantomjs test.js
success
null

无论我如何尝试,即使页面似乎已打开正常(因为状态包含“成功”),评估也将继续返回null.

如果我决定打开一个没有基本身份验证的页面,例如http://alexturpin.net/noauth,我仍然会得到相同的结果.只有在我最终打开页面之前完全删除身份验证设置后,它才起作用.

身份验证设置的使用似乎与评估冲突.这是PhantomJS中的错误,还是我错过了什么?

解决方法:

使用该语法,您将清除设置对象,仅将其替换为userName和password.使用该代码进行设置:

page.settings.userName = "test";
page.settings.password = "rosebud";

PhantomJS可能应该更好地处理该问题,即,不依赖设置对象作为默认值.

标签:javascript,phantomjs,basic-authentication
来源: https://codeday.me/bug/20191013/1905642.html