【问题标题】:Error: done() invoked with non-Error: {}错误:用非错误调用 done():{}
【发布时间】:2016-06-17 15:22:11
【问题描述】:

我正在尝试设置自动测试,在 Selenium 上使用 Mocha 和 PhantomJS 和 Node.js。我正在使用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 库,但它们都返回不同的错误 ;~;

【问题讨论】:

    标签: javascript node.js selenium testing phantomjs


    【解决方案1】:

    任何作为参数传递给done 回调的内容都将被解释为错误。将beforeEach 更改为:

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

    【讨论】:

    • 啊,有道理。谢谢你的帮助!显然它被传递了一个空对象:/
    • 当然,很高兴为您提供帮助:)
    • 恐怕你的第一个陈述有点虚假:Error: done() invoked with non-Error: 500
    • 2021 年很多事情都是假的¯_(ツ)_/¯
    • 已经远离 selenium,请随时更正/更新答案
    猜你喜欢
    • 1970-01-01
    • 2013-09-20
    • 2021-07-17
    • 1970-01-01
    • 2019-09-01
    • 2016-05-03
    • 1970-01-01
    • 2020-07-05
    • 1970-01-01
    相关资源
    最近更新 更多