我有一个“表单”构建器,其中我从ng-repeat中选择字段类型,并且该元素出现在画布中。我想单击画布上该元素的“编辑”按钮。单击编辑按钮将显示其他几个要输入的字段。但是所有元素都在ng-repeat中,并且按钮没有id,name,model。
答案 0 :(得分:0)
我认为这种方法应该可以解决问题
function editBuilder(builderName) {
// select title of a builder which is span
const title = element(by.cssContainingText('.h4', builderName));
// get root form element (parent element)
const root = title.element(by.xpath('..'));
// get edit button
const editButton = root.$('[ng-click="editFields($index)"]')
// click or something
return editButton.click();
}
然后您可以像这样调用此函数:
editBuilder('Text Field').then(...);
答案 1 :(得分:0)
我只能通过使用以下代码来选择第一个ng-repeat元素:
element(by.xpath("//button[@class='md-icon-button md-button md-ink-ripple md-default-theme']")).click();
element(by.name("label")).clear().sendKeys("admin");
答案 2 :(得分:0)
如果有多个编辑按钮,则可以按以下方式找到它们:
element.all(by.css('.icon.icon-pencil.s20')).get(<index>);
索引从0开始
如果只有一个,则:
element(by.css('.icon.icon-pencil.s20'));