1
var itemStatus = element(by.model('item.statusId')).getText(); 

Это вызывает транспортир бросить:транспортир Выдает Error на присвоение переменной

Uncaught исключение: Ошибка во время ожидания транспортир для синхронизации с страницу: «Угловая не может быть найден в окне» Process выведено с кодом ошибки 1.

Может кто-нибудь объяснить, почему? Это не бросает:

var itemStatus = element(by.model('item.statusId')) 

Это что-то делать с обещаниями, что не может выполнить .getText(), пока элемент не находится?

Наверное, у меня слабое понимание основ.

Update:

var itemStatus = element(by.model('item.statusId')) 
// var itemStatus = element(by.model('item.statusId')).getText(); //was throwing with this 

А затем используется ниже, до того, как код был комментарий, я просто не запускали «.getText()» в ожидают.

it('Should check item status, verify it is Checked Out.', function(){ 
    expect(itemStatus.getText()).toBe('Checked Out'); 
    //expect(itemStatus).toBe('Checked Out'); //this is how it was during error 
}); 

и HTML:

<div class="form-control ng-binding ng-scope ng-isolate-scope ng-valid" ng-model="item.statusId" disabled="disabled">Checked In</div> 

Я хочу отметить, что даже все заявления планирующих закомментированы, скрипт будет выдавать ошибку, когда я попытался GetText() для вара itemStatus.

К сожалению, забыл конфигурации:

exports.config = { 
    seleniumAddress: 'http://localhost:4444/wd/hub', 
    specs: ['transfer_spec.js'] 
} 
+0

'Угловой не может быть найден на window' обычно означает, транспортир не может синхронизироваться с угловым приложением. Где вы определили 'ng-app'? Вы загружаетесь вручную вручную? – alecxe

+0

Также см .: http://stackoverflow.com/questions/28216445/protractor-e2e-angular-angular-could-not-be-found-on-the-window, https://github.com/angular/protractor/ вопросы/1760. – alecxe

+0

Эй, алек, извините, мне пришлось уйти после того, как я разместил этот вопрос. НИЧЕГО изменений в приложении, кроме удаления .getText() - это то, что заставляет его бросать или не выкидывать ошибку. Мне было интересно, если что-то не так с попыткой получить свойство элемента, но, я думаю, нет. Может быть, просто ошибка? – VSO

ответ

1

Я думаю, что это связано с тем, где вы определили переменную itemStatus. Если это определено вне области действия describe/it, вы можете столкнуться с проблемой синхронизации между транспортиром и угловым - на данный момент вызывается getText(), еще слишком рано, protractor еще не получил сигнал «Я готов». У вас объявление внутри describe/it или внутри страницы объекта:

var MyPage = function() { 
    this.status = element(by.model('item.statusId')); 
}; 
module.exports = new MyPage(); 

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

var myPage = require("MyPage.js") 

describe("My test", function() { 
    it("Should check item status, verify it is Checked Out.", function() { 
     expect(myPage.status.getText()).toEqual("Checked Out"); 
    }); 
}); 
+0

Спасибо, как обычно. – VSO

Смежные вопросы