我正在测试的应用使用中继器输出列表,并且希望能够找到特定行并点击该行内的编辑按钮。使用现有定位器单击中继器内的元素
我使用.filter找到相关的行,然后点击编辑按钮,但如果我指定的定位器按钮,而不是如果我指的是现有的定义这仅适用:
this.editWineButton = element(by.buttonText('edit'));
this.editWine = function (wineName) {
this.wineListEntries.filter(function(row){
return row.element(by.binding('wine.name')).getText().then(function(name){
return name === wineName;
});
}).then(function (elem) {
//THIS WORKS
var button = elem[0].element(by.buttonText('edit'));
//THIS FAILS
//var button = elem[0].editWineButton;
button.click();
});
};
已经为编辑按钮定义了定位器,我需要做些什么才能重新使用筛选器的结果?
当我运行的代码失败版本我得到的错误
“失败:无法读取属性未定义的‘点击’”。
我觉得答案肯定是显而易见的,但我看不出我的错误。任何建议将非常受欢迎。