Я новичок в Protractor и AngularJS. Я использую Parse на задней панели. Попытка сделать очень простой тест:
describe('Test', function () {
beforeEach(function () {
browser.get('index.html#/example')
});
it('should have a button', function () {
expect(element(by.css('#test321')).isElementPresent()).toBe(true); //fails
}); ...
Тест не проходит. Элемент находится в template.html:
...
<body>
<button id="test321">stuff</button>
...
Загружается по угловому маршруту. Этот маршрут также загружает данные из серверной части:
...
config(['$routeProvider', function ($routeProvider) {
$routeProvider.
when('/example', {
templateUrl: 'template.html',
controller: 'templateCtrl',
resolve: {
data: 'dataService' //Data is loaded from Parse. This line causes the problem
}...
Проблема вызвана строкой «data:» выше. Если я возьму эту строку или верну статический результат, она будет работать нормально. Также, если я перемещу этот элемент index.html, он тоже сработает.
Это похоже на проблему со временем. Однако, согласно документации, транспортир (или, в частности, isElementPresent) ждет всех разрешений, прежде чем находить элементы.
Я растоптан. Большое спасибо за любую помощь.
Обновление: Согласно этому, это было решено в Protractor 1.2, но я использую 1.4. Очень странно.
browser.wait(function () { return $('#addReferringButton').then(function (element) { return true; }, function(error) { return false; }); }, 5000);
- person app_sciences   schedule 02.12.2014