我正在尝试在基本始终为auth的页面上使用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中的错误,还是我错过了什么?
答案 0 :(得分:4)
使用该语法,您将清除设置对象,仅将其替换为userName
和password
。使用该代码进行设置:
page.settings.userName = "test";
page.settings.password = "rosebud";
可能PhantomJS应该更好地处理,即不依赖于settings
对象的默认值。
答案 1 :(得分:-2)
这是一个关闭问题,尝试将您的console.log置于回调中