我正在尝试在具有基本始终身份验证的页面上使用 PhantomJS,例如此页面
http://alexturpin.net/auth (test:rosebud
)
使用以下代码
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
无论我尝试什么,evaluate
会继续回来null
,尽管页面似乎已经打开得很好,因为status
包含"success"
.
如果我决定打开一个没有基本身份验证的页面,例如http://alexturpin.net/noauth,我仍然得到相同的结果。只有当我最终在打开页面之前完全删除身份验证设置时,它才起作用。
身份验证设置的使用似乎与evaluate
。这是 PhantomJS 中的错误,还是我错过了什么?
使用该语法,您将清除设置对象,仅将其替换为userName
and password
。使用该代码来设置它们:
page.settings.userName = "test";
page.settings.password = "rosebud";
也许 PhantomJS 应该更好地处理这个问题,即不依赖于settings
默认值对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)