我有以下步骤定义,检查页面中是否存在由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);
});
我想知道是否可以在另一个步骤定义中调用此步骤定义。例如,在用于填充文本区域的步骤定义中,此方法可能很有用。在这种情况下,我想在尝试填充文本区域之前先知道页面中是否存在该文本区域。
先感谢您!
最佳答案
老问题了,但是对于后来发现这个问题的人来说...
Cucumber的创建者在早期是enthusiastic about nesting steps,但是他们是later repented themselves of 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却不支持此功能的原因。
关于javascript - Protractor :在另一个步骤定义中调用步骤定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34723228/