Selenium-webdriver不会在nodejs中从mocha打开firefox

时间:2015-07-28 19:19:50

标签: node.js firefox selenium intellij-idea

这个简单的测试为我打开firefox浏览器:

 var webdriver = require('selenium-webdriver'); 
 var driver = new
 webdriver.Builder()
     .forBrowser('firefox')
     .build(); driver.get('http://www.google.com/ncr');

但是当我尝试将此代码放入mocha测试中时,firefox未打开:

describe("simple", function () {
    it("simple", function (done) {
        var webdriver = require('selenium-webdriver'),
            By = webdriver.By,
            until = webdriver.until;

        var driver = new webdriver.Builder()
            .forBrowser('firefox')
            .build();

        driver.get('http://www.google.com/ncr');
    })
});

代码执行正常,webdriver和驱动程序不为空,我没有观察到任何错误消息,工作文件夹与初始测试相同。我使用intellij idea mocha配置。我该如何解决或诊断问题?

2 个答案:

答案 0 :(得分:0)

要与selenium,mocha,intellij和nodejs一起使用,您必须使用以下语法:

test = require('selenium-webdriver/testing');
var webdriver = require('selenium-webdriver')

test.describe('Simple',function(){
    test.it("test1",function(){
        this.timeout(120000);
        var driver = new webdriver.Builder()
            .forBrowser('firefox')
            .build();
        // do my testing
    }
}

答案 1 :(得分:0)

您不需要任何其他测试运行器而不是您喜欢的测试运行器。您可以将Selenium与普通的旧Mocha一起使用,但由于Selenium对promises(ControlFlow)的特殊处理,您必须强制解析promises以触发浏览器操作:

var webdriver = require('selenium-webdriver'),
    By = webdriver.By,
    until = webdriver.until;

describe("simple", function () {
  it("simple", function (done) {

    var driver = new webdriver.Builder()
        .forBrowser('firefox')
        .build();

    driver.get('http://www.google.com/ncr')
        .then(function() { done(); });
  });
});

为了更好地了解Selenium中的ControlFlow和Promise,我建议阅读http://marmelab.com/blog/2016/04/19/e2e-testing-with-node-and-es6.html