繁体   English   中英

错误:用非错误{{}调用了done()

[英]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

我不确定为什么会发生此问题,并且搜索没有帮助,因为我的解决方案不适合我的情况。 我上线了:

  • 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回调的任何内容都将被解释为错误。 更改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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM