Я автоматизировал приложение (используя Protractor), и я столкнулся с ситуацией, когда я хотел выбрать опцию из следующего типа, используя кнопку со стрелкой ВНИЗ от клавиатуры. Вот как я приближаюсь к этому действию.Завершение каждого() блока в Protractor
- После ввода части в текстовое поле я получаю ссылку на каждую опцию, которая отображается в следующем виде.
- Теперь, я использую метод транспортировщика .each() для повторения каждой опции для поиска нужной опции.
- Я создаю скрипт, чтобы нажать кнопку со стрелкой ВНИЗ, чтобы перебирать каждую опцию в следующем формате. Предположим, что 10 опций отображаются в следующем типе, а параметр, который мне нужно выбрать, находится на 5-й позиции. Теперь, когда я добираюсь до пятой позиции, я выбираю опцию, но каждая() функция все еще продолжается.
Я хочу, чтобы цикл завершался, когда была выбрана требуемая опция. Что-то вроде инструкции BREAK в циклах FOR.
BTW Я пробовал описанный выше сценарий с циклом FOR, но не смог использовать оператор BREAK в обработчике then().
Пожалуйста, дайте мне знать, как справиться с этой ситуацией.
Проблема в том, что я не могу получить доступ к значениям переменных, установленным внутри **, а затем ** обработчикам идеал блока. Кроме того, после выбора выбора из типа вперед он исчезает и по мере того, как цикл продолжается, он не может найти следующую ссылку на элемент и выдает сообщение об ошибке «Элемент, который не найден с таким и так XPATH ...». –
вам нужно объявить переменную вне (и до) блока, если вы хотите, чтобы она была установлена внутри блока и использовалась после. Можете ли вы опубликовать какой-то код, который не работает, но показывает, что вы пытаетесь сделать? –
вот фрагмент кода. allBenchmarks.each (function (benchmark) { benchmark.getAttribute ("class"). then (function (classValue) { if (классValue.indexOf ("active")> 0) { benchmark.getAttribute ("data-value «) .then (функция (DataValue) { если (DataValue == optionToSelect) { benchmark.click(); defer.fulfill (истина); возвращение обещание, } });} }); }); –