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

Mic*_*ang 2 javascript testing selenium node.js phantomjs

我正在尝试使用带有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
Run Code Online (Sandbox Code Playgroud)

我不确定为什么会出现这个问题,并且搜索没有帮助,因为我的解决方案不符合我的情况; 我上线了:

  • 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);
    });
});
Run Code Online (Sandbox Code Playgroud)

我也试过使用我找到的一些gulp脚本和其他Node.js库,但它们都返回不同的错误;〜;

cvi*_*ejo 6

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

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


归档时间:

查看次数:

2864 次

最近记录:

9 年,3 月 前