[英]Error: done() invoked with non-Error: {}
我正在尝试在带有Node的Selenium上使用Mocha和PhantomJS来设置自动测试。 我正在使用selenium-webdriver
库,因为它似乎很受欢迎,但是当我运行测试并尝试从页面中提取数据时,它给了我这个错误:
1) Test "before each" hook for "Test":
Error: done() invoked with non-Error: {}
at ManagedPromise.invokeCallback_ (node_modules/selenium-webdriver/lib/promise.js:1379:14)
at TaskQueue.execute_ (node_modules/selenium-webdriver/lib/promise.js:2913:14)
at TaskQueue.executeNext_ (node_modules/selenium-webdriver/lib/promise.js:2896:21)
at node_modules/selenium-webdriver/lib/promise.js:2775:27
at node_modules/selenium-webdriver/lib/promise.js:639:7
我不确定为什么会发生此问题,并且搜索没有帮助,因为我的解决方案不适合我的情况。 我上线了:
这是我的脚本:
var selenium = require("selenium-webdriver");
var should = require("should");
var URL = "https://android.com";
var driver;
describe("Test", function() {
this.timeout(15000);
beforeEach(function(done) {
driver = new selenium.Builder()
.withCapabilities(selenium.Capabilities.phantomjs())
.build();
driver.get(URL).then(done);
});
/* is this an HTML page? */
it("Test", function() {
driver
.getPageSource()
.should.eventually
.match(/(.*)\<\!doctype\ html\>(.*)/i);
});
afterEach(function(done) {
driver.quit().then(done);
});
});
我也尝试使用发现的一些gulp脚本和其他Node.js库,但是它们都返回不同的错误;〜;
作为参数传递给done
回调的任何内容都将被解释为错误。 更改beforeEach
到:
beforeEach(function(done) {
driver = new selenium.Builder()
.withCapabilities(selenium.Capabilities.phantomjs())
.build();
driver.get(URL).then(function(){
done();
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.