【发布时间】:2014-10-29 08:55:10
【问题描述】:
我正在尝试使用 node/mocha 进行功能测试。
我已经安装了 selenium webdriver:
$ npm install selenium-webdriver
和摩卡
$ npm install -g mocha
我正在使用运行 Selenium 的本地 Vagrant 盒子,并且可以看到从以下位置开始的会话:
http://localhost:4444/wd/hub/static/resource/hub.html
当我运行测试时,我收到以下错误:
TypeError: Target browser must be a string, but is <object>; did you forget to call forBrowser()?
这是我的完整测试:
var webdriver = require('selenium-webdriver');
var assert = require('assert');
var test = require('selenium-webdriver/testing');
var driver = new webdriver.Builder();
driver.forBrowser("chrome");
driver.usingServer('http://localhost:4444/wd/hub');
driver.withCapabilities(webdriver.Capabilities.chrome());
driver.build();
test.describe('Google Search', function() {
this.timeout(25000);
test.it('should work', function() {
var driver = new webdriver.Builder().build();
driver.get("http://www.google.com");
driver.findElement(By.name("q")).sendKeys("webdriver");
driver.findElement(By.name("btnG")).click();
driver.getTitle().then(function(title) {
assertEquals("webdriver - Google Search", title);
});
driver.quit();
});
});
最初声明驱动程序的行都在一行中,但我已将其拆分并添加对 forBrowser() 的调用以尝试使其正常工作。
var driver = new webdriver.Builder().usingServer('http://localhost:4444/wd/hub').withCapabilities(webdriver.Capabilities.chrome()).build();
没有快乐。
我查看了 builder.js,似乎功能设置不正确,但我不知道如何修复它 - Builder.prototype.build 在上述测试中被调用了两次如何,第一次调用 capabilities.get(Capability.BROWSER_NAME) 返回“chrome”,这很好,但第二次调用时,它有 null 和保释。我搞不定。
任何指针表示赞赏。
【问题讨论】:
标签: javascript node.js selenium functional-programming mocha.js