这个简单的测试为我打开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配置。我该如何解决或诊断问题?
答案 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