错误: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库,但它们都返回不同的错误;〜;

任何传递给donecallback的参数都将被解释为错误。 之前更改为:

 beforeEach(function(done) { driver = new selenium.Builder() .withCapabilities(selenium.Capabilities.phantomjs()) .build(); driver.get(URL).then(function(){ done(); }); });