A simple WebdriverIO - Mocha test doesn't display browser

喜你入骨 提交于 2019-12-21 06:23:39

问题


I want to test NOT headlessly but I cannot do that.

The below code start chrome browser. NOT headless. OK.

// test.js

var webdriverio = require('webdriverio');

var options = {
  desiredCapabilities: {
    browserName: 'chrome'
  }
};

webdriverio
  .remote(options)
  .init()
  .url('http://www.google.com')
  .title(function(err, res) {
    console.log('Title was: ' + res.value);
  })
  .end();

The below code (Mocha test code) doesn't start chrome browser by $ mocha test.js.

Headless. NG.

But the test pass! I cannot understand this.

I checked the log of Selenium Server, but it doesn't show (left) any log. No trace.

// test-mocha.js

var expect = require('expect.js');
var webdriverio = require('webdriverio');

var options = {
  desiredCapabilities: {
    browserName: 'chrome'
  }
};

describe('WebdriverIO Sample Test', function () {
  it('should return "Google"', function () {
    webdriverio
      .remote(options)
      .init()
      .url('http://www.google.com')
      .title(function(err, res) {
        var title = res.value;
        expect(title).to.be('Google');
      })
      .end();
  })
});

The test result is as below:

  WebdriverIO Sample Test
    ✓ should return "Google"

  1 passing (4ms) 

回答1:


webdriver.io is asynchronous. Change your test to mark it as asynchronous and use the done callback after all the checks in the test are done. The two changes are: 1. add done as a parameter to the function you pass to it and 2. add the done() call after your expect call.

  it('should return "Google"', function (done) { // <- 1
    webdriverio
      .remote(options)
      .init()
      .url('http://www.google.com')
      .title(function(err, res) {
        var title = res.value;
        expect(title).to.be('Google');
        done(); // <- 2
      })
      .end();
  })

Without this, Mocha thinks your test is synchronous so it just completes the test before webdriverio does its work.



来源:https://stackoverflow.com/questions/27143740/a-simple-webdriverio-mocha-test-doesnt-display-browser

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!