Как протестировать веб-формы asp.net (не угловые) с помощью Protractor?

Я очень новичок в транспортире и тестирую приложения .NET. Я пытаюсь создать сценарий автоматического тестирования с нуля. Ниже приведен HTML-код:

<div class = "top">
<span id = "welcome">
<em>Hi</em> 
"," 
<strong>
<span id = "user">MyName</span></strong> 
"|"
</span>'

Мой код транспортира:

var greet = element(by.id('user')); expect(greet.getText()).toBe('MyName');

Я уже сделал этот код:

var greet = element(by.id('welcome')).element(by.id('user'));
expect(greet.getText()).toBe('Hi, MyName'); // or toEqual("Hi, MyName");

Но я все еще получаю сообщение об ошибке, говорящее

Ошибка: элемент не найден с использованием локатора: by.id("welcome")

or

Ошибка: элемент не найден с использованием локатора: by.id("user")

Надеюсь услышать мнение всех опытных тестировщиков транспортиров.


person Marj    schedule 15.01.2016    source источник
comment
Видите ли вы какие-либо элементы iframe на странице?   -  person alecxe    schedule 15.01.2016
comment
@alecxe Я не вижу элементов iframe на веб-странице. то, что я вижу, это ajaxsetup, jquery. Я не уверен, связано ли это с этим?   -  person Marj    schedule 16.01.2016


Ответы (1)


Это действительно похоже на проблему со временем. Попробуем подождать появления элемента:

var EC = protractor.ExpectedConditions;
var greet = element(by.id('user'));

browser.wait(EC.presenceOf(greet), 5000);

expect(greet.getText()).toBe('MyName');
person alecxe    schedule 15.01.2016
comment
вау, спасибо! это сработало! Я увеличил его до 20000. Могу ли я также использовать это для приложения, основанного на angular? - person Marj; 16.01.2016
comment
@Marj, если есть тестируемое приложение angular, обычно нет необходимости в явном ожидании, поскольку транспортир синхронизирует вещи с angular и знает, когда оно будет готово. Иногда, хотя ожидания необходимы. - person alecxe; 16.01.2016
comment
да. У меня был один тестовый скрипт, который работал с перебоями, и даже если бы мне приходилось ждать его, он все равно терпел неудачу из-за ненайденного элемента. - person Marj; 16.01.2016