【发布时间】:2014-04-10 00:40:12
【问题描述】:
我们正在使用出色的 WebdriverJS(使用 Selenium)对我们的网络应用程序执行验收测试。一切正常,当我们使用 Firefox 和 Safari 时,我们的测试成功执行。
但是,当我们使用 PhantomJS 时,我们的测试会因无用的错误而失败。就好像... Javascript 甚至没有在客户端页面中运行!如果 PhantomJS 的 javascript 环境出现错误,就会导致这种情况。不幸的是,在将 PhantomJS 与 WebdriverJS 一起使用时,我似乎找不到访问 Javascript 错误的方法。
如果我们直接使用 PhantomJS,我们可以简单地做(来自PhantomJS site):
page.onError = function(msg, trace) {
console.log(msg);
trace.forEach(function(item) {
console.log(' ', item.file, ':', item.line);
});
}
不幸的是,在 WebdriverJS 中使用 PhantomJS 时,我不知道如何访问这个神秘的 page 对象。有什么想法吗?
【问题讨论】:
-
您通常会在每个命令之后的错误参数中获得整个错误堆栈(例如 .click('#elem',function(err , ...))。这给了你任何信息?你得到了哪些无用的错误?
-
据我了解,这里运行着两个 JS 引擎/环境——运行 PhantomJS 测试的“主机”和运行网页实际代码的“客户端”。我认为您指的是“主机”错误,我可以轻松访问。相反,我需要的是“客户端”错误......
标签: selenium webdriver phantomjs ghostdriver webdriver-io