2016-06-23 8 views
5

В соответствии с Protractor Angular 2 Failed: unknown error: angular is not defined угловые селектора by.model не поддерживаются.Угловой не определяется на Ионном 2 с помощью транспортира 2

Я также пошел в http://www.protractortest.org/#/, и я заметил, что, похоже, ничего не изменилось, чтобы исправить это.

Как установить входной текст с помощью транспортира и углового 2?

EDIT

Я выбираю мой, делая это:

let myelement: ElementFinder = element(by.css('.text-input')); 

Но у меня есть несколько входов на моем HTML-страницы. Как я могу ввести 4-й ионный вход, например?

+0

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

+0

Угловое семя было установлено утяжелителем, возможно, оно помогает https://github.com/mgechev/angular2-seed/blob/master/src/client/app/%2Bhome/home.component.e2e-spec.ts – AngJobs

ответ

3

Но у меня есть несколько входов на моем HTML-страницы. Как я могу ввести 4-й ионный вход, например?

Вы можете оформить element.all() и использовать .get(index) для доступа к элементу по индексу:

let myelement: ElementFinder = element.all(by.css('.text-input')).get(3); 
myelement.sendKeys("text"); 

Обратите внимание, что мы используем 3, так как индексация 0 на основе.

Вы также можете использовать в convenient shortcut для CSS селекторов:

let myelement: ElementFinder = $$('.text-input').get(3); 
myelement.sendKeys("text"); 

FYI, отрицательная индексация также поддерживается в случае, если вы хотите получить элементы из другого конца:

+0

Второй один работает отлично. Благодаря! – Goldbones

1

Протрансформатор allows you to use the element.all function, который возвращает массив объектов.

Таким образом, для вашего конкретного примера вы могли бы сделать что-то вроде этого положить внутри вашего теста:

element.all(by.css('.text-input')).then(function(elements) { 
     elements[3].sendKeys('some text') 
    }); 
Смежные вопросы