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 に答える