1

我的 world.js 看起来像这样:

var protractor = require('protractor');
var webdriver = require('selenium-webdriver');
var driver = new webdriver.Builder().usingServer('xxxxx').
    withCapabilities(webdriver.Capabilities.firefox()).build();

driver.manage().timeouts().setScriptTimeout(100000);


module.exports.World = function World(callback) {
    this.browser = protractor.wrapDriver(driver);
    this.by = protractor.by;
    callback();
};

然后在steps.js中:

{
     element(by.id('username')).sendKeys("admin");
}

当我使用 cucumber.js 运行它时,错误是:

TypeError:无法调用未定义的方法“id”

但是如果我删除 world.js 并使用量角器运行它,它就可以工作。

我怎样才能解决这个问题?

4

1 回答 1

1

看起来您没有by在全球范围内出口。我不确定您为什么完全可以使用该element功能-但无论如何,您可能应该执行以下操作:

module.exports.World = function World(callback) {
    global.browser = protractor.wrapDriver(driver);
    global.by = protractor.by; 
};
于 2014-12-17T22:29:40.137 回答