Как выбрать кнопку «Редактировать» без текста элемента ng-repeat? - PullRequest
0 голосов
/ 22 января 2019

У меня есть конструктор форм, где я выбираю тип поля из ng-repeat, и элемент появляется на холсте.Я хочу нажать кнопку «Изменить» этого элемента на холсте.Нажатие кнопки редактирования показывает еще несколько полей для ввода.Но все элементы в ng-repeat и у кнопки нет идентификатора, имени, модели.enter image description here

enter image description here

Ответы [ 3 ]

0 голосов
/ 22 января 2019

Мне удалось выбрать 1-й элемент 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");

0 голосов
/ 06 февраля 2019

Если имеется более одной кнопки редактирования, вы можете просто найти их так:

element.all(by.css('.icon.icon-pencil.s20')).get(<index>);

индекс начинается с 0
Если есть только один, то:

element(by.css('.icon.icon-pencil.s20'));
0 голосов
/ 22 января 2019

Я думаю, что-то вроде этого должно сработать:

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(...);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...