Транспортир - Невозможно зациклить каждый элемент, используя ElemArrayFinder каждый - PullRequest
0 голосов
/ 16 марта 2019

Я использую транспортир + жасмин.

У меня есть 2 элемента (ссылки) в таблице, и мне нужно удалить один за другим - или по одному. После того, как я удалил первый элемент, таблица обновится и заполнится оставшимися элементами (или ссылками).

Мой код ниже только удаляет первый элемент и выходит из кода. Я не могу зациклить и удалить все элементы.

Я правильно понял общее количество.

element.all(by.xpath("//span[@class='abc']")).count().then(function (count) 
    {
      element.all(by.xpath("//span[@class='abc']")).each(function (elem, index)
       { 
          elem.getText().then(function (name) 
          {
          console.log("NAME IS " + name);
          var row = element(by.xpath('//span[contains(text(),"' + name + '")]/../../..'));
          row.click();
          var overFlow = element(by.xpath('//span[contains(text(),"' + name + '")]/../../..//*[@class="zzz"]'));
          helper.clickElemWithJavascript(overFlow);
          helper.scrollIntoView(deleteButton);
          helper.clickElemWithJavascript(deleteButton); 
        })
      }) 
    }); //count

1 Ответ

0 голосов
/ 16 марта 2019

Создание цепочки обещаний - одно из решений для такого рода проблем.

Я понял это таким образом, и это мой подход:

  1. Я сделал эти шаги какфункция.

  2. Я получаю общее количество элементов, используя element.all (). Each ().Это возвращает массив элементов / массив значений.

  3. Используя цикл For и длину указанного выше массива, вызывая функцию (шаг 1), которая имеет шаги для удаления отдельного элемента.

  4. Я последовал за Обетованием.Поэтому, если предыдущий шаг не был завершен, поток управления не будет выполнять следующий шаг.

  5. Я не знаком с Async и Await, поэтому я следовал подходу выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...