2016-09-16 2 views
3

Я только начал использовать транспортир с угловым2. Я написал образец теста с транспортиром нижеКак использовать транспортир с угловыми органами управления?

<input type="text" id="name"> 


describe('angularjs homepage', function() { 
it('should say my name', function() { 
    browser.get('http://localhost:3000/?'); 
var greeting =element(by.id('name')).sendKeys('john'); 
expect(greeting.getAttribute('value')).toEqual('john'); 
}); 
}); 

И это отлично работало. Но я использую образует что-то вроде этого

<input type="text" [formControl]="testControl" /> 

И я не имею любой идентификатор упомянута на входе control.Is можно писать тесты, используя имя элемента управления, что-то вроде var greeting=element(by.formcontrol('testControl')).sendKeys('john'); Потому что я не хочу упомянуть Id's or names для ввода. Можете ли вы, ребята, помочь мне. Измените меня, если я ошибаюсь. Спасибо

ответ

1

Можете ли вы попробовать использовать селектор css для поиска ввода. взгляните на пример belwo.

element(by.css("input[formControl='testControl']")) 
+0

Это кажется хорошим для меня ... Спасибо –

+0

Привет ... Я получил эту ошибку " Не удалось: ни один элемент не найден с использованием локатора: By (css selector, input [formControl = "name"]) ". –

+0

У него нет атрибута formControl после того, как ввод будет отображаться – karser

1

Это может быть потому, что транспортир пытается искать элемент, прежде чем он виден сразу после browser.get(). CSS/XPath селекторы обычно работают, поэтому попробуйте следующее:

describe('angularjs homepage', function() { 
it('should say my name', function() { 
    browser.get('http://localhost:3000/?'); 
var EC= protractor.ExpectedConditions; 
browser.wait(EC.visibilityOf($('yourElementHere'), 60000); 
var greeting =element(by.id('name')).sendKeys('john'); 
expect(greeting.getAttribute('value')).toEqual('john'); 
}); 
}); 

Это заставит транспортир ждать видимости конкретного элемента (с тайм-аута) на странице, прежде чем продолжить.

1

Также было трудно с этим и получить принятый ответ на работу. я в конечном итоге создание метода полезности следующим образом:

const input = (name: string) => element(by.css('input[ng-reflect-name=\"' + name + '\"]')); 

Использование:

input('firstName').sendKeys('John'); 
Смежные вопросы