我的phantomjs脚本中有以下代码:
var page = new WebPage(), testindex = 0, loadInProgress = false;
page.onConsoleMessage = function(msg) {
console.log(msg);
};
page.onLoadStarted = function() {
loadInProgress = true;
console.log("load started");
};
page.onLoadFinished = function() {
loadInProgress = false;
console.log("load finished");
};
var steps = [
function() {
console.log("Load Login Page");
//spoof user-agent
page.settings.userAgent = "'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0';";
page.open("https://login.XXX.com");
},
最初这似乎有效。现在我收到以下错误,登录无效:
"TypeError: 'null' is not an object (evaluating 'a.nodeType')".
有没有人碰到过这个?有关如何修复的想法吗?
答案 0 :(得分:2)
要做的第一件事:检查此错误的来源。
当我在PhantomJS中开始时,我不清楚的是,默认情况下,“errors”包含脚本编译/执行错误以及页面javascript错误。 特别是,你在onConsoleMessage上有一个回调,所以错误可能来自目标页面。
基本上,当存在未处理的错误时,PhantomJS进入无效状态并且执行停止。
您已在webpage.onerror上向phantom.onerror添加处理程序。