错误:done()与非错误调用:{}
我试图设置自动testing,使用Mocha和PhantomJS Selenium with Node。 我使用selenium-webdriver
库,因为它似乎是一个stream行的,但是当我运行testing,并尝试从一个页面提取数据,它给了我这个错误:
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
我不知道为什么这个问题正在发生,search没有帮助,因为我的解决scheme不适合我的情况。 我上线了:
- Mac OS X 10
- Node.js v4.4.5
- PhantomJS 2.1.1
这是我的脚本:
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
callback的参数都将被解释为错误。 之前更改为:
beforeEach(function(done) { driver = new selenium.Builder() .withCapabilities(selenium.Capabilities.phantomjs()) .build(); driver.get(URL).then(function(){ done(); }); });