我正在尝试使用 phantomjs 进行一些测试......基本上我想:
- 在我的网络服务器上打开一个页面
- 页面初始化后(所有页面 js 已加载)
- 从phantomjs调用页面js并测试结果
- 退出 phantomjs
phantomjs 似乎很难注意到页面何时加载。
我可以使用 phantomjs 在窗口或其他东西上设置一个“测试”变量,以便页面 js 可以检查它,然后在完成后调用回调。问题是回调只能是页面回调,所以它不能做任何页面不能做的事情。
这对苔丝来说可能没问题,但最后一步是不可能的。
我想出了这个:
page.onConsoleMessage = function(msg) {
if (msg == "__quit__") {
phantom.exit();
}
else {
console.log("page: " + msg);
}
};
page.evaluate(function () {
window.quit = function () { console.log("__quit__"); };
});
所以页面代码可以调用window.quit(),然后控制台监视器可以杀死幻影。不过,这似乎有点 hacky。有没有人有更好的方法呢?