0

Я создаю некоторые функциональные тесты для Chrome с помощью транспортира. Это мой сценарий: мне нужно открыть диалоговое окно html и открыть раскрывающийся список в нем и выбрать вариант из раскрывающегося списка. Это выпадающее меню имеет примерно 20 опций, поэтому выпадающие списки параметров списка выходят из диалогового окна. Я могу нажать на параметры, которые попадают в диалоговое окно, но я не мог нажать на параметры, которые находятся за пределами диалога. Я получаю ошибку как:Невозможно щелкнуть элементы, находящиеся вне родительского элемента, используя Protractor

Элемент не доступен для скачивания в точке (123, 637). Другой элемент получит щелчок

есть ли обходной путь для этого?

+0

Что вы подразумеваете под вариантами вне диалога? Не могли бы вы добавить дополнительные сведения к описанию проблемы - представление HTML диалога, ваш тест и стек ошибок? Благодарю. – alecxe

ответ

1

Из информации, приведенной для меня, похоже, что вы пытаетесь получить доступ к элементам раскрывающегося списка отдельно, а селектор, который вы используете для элементов внутри диалогового окна, не применим к внешним, поэтому я бы предложил выбрать элемент, который имеет все варианты вложенных внутри (или создать при необходимости) и нажмите на элементы, как дочерние элементы этого контейнера, он может выглядеть следующим образом:

var dropDownOptions = element(by.id('optionsContainerId')) 
          .all(by.<options locator>); 
dropDownOptions.get(<index of option>) 
       .click(); 

и, как правило, для доступа к элементам за пределами родительского элемента (те, которые являются вне текущего элемента, который вы выбрали), вы можете использовать локатор by.xpath. См. docs для более подробной информации.

+0

Отредактированный ответ, чтобы считать действительным, надеюсь, что это сейчас :-) –