【问题标题】:Protractor: call a step definition inside another step definition量角器:在另一个步骤定义中调用一个步骤定义
【发布时间】:2016-01-11 13:52:43
【问题描述】:

我有这个步骤定义来检查页面中是否存在由 CSS 选择器标识的元素:

this.Then(/The element with selector "([^"]*)" should be present/, function(elementSelector, callback){
    var selectedElement = element(by.css(elementSelector));

    expect(selectedElement.isPresent()).to.eventually.equal(true, "Can't find the element with selector '" + elementSelector + "' that should be present").and.notify(callback);
 });

我想知道是否可以在另一个步骤定义中调用此步骤定义。这种方法可能很有用,例如,在用于填充文本区域的步骤定义中。在这种情况下,我想在尝试填充之前知道页面中是否存在文本区域。

提前谢谢你!

【问题讨论】:

    标签: javascript testing protractor


    【解决方案1】:

    老问题,但后来发现这个问题的人......

    Cucumber 的创建者早年是enthusiastic about nesting steps,但他们later repented themselvesof ever creating the feature,而是建议将函数组合在一起。根据 Aslak 的示例,这在 javascript 中特别容易做到:

    function x_is_something(x, cb) {
      console.log('x', x);
      cb();
    }
    
    Given(/x is (.*)/, x_is_something);
    
    Given(/super x/, function(cb) {
      x_is_something(97, cb);
    });
    

    这就是为什么许多原始 Cucumber-Ruby 的变体从未支持此功能的原因,它们的创建者 have even discussed removing it 来自支持此功能的人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多