Всем привет! Я только осваиваю автоматизацию и Protractor.
Цель такая, я хочу проверять все элементы на наличие перед тем как что то делать, так как делать browser.sleep это зло.
Вот немного кода:
var some.object = function (){
this.element_by_xpath = function(xpath) {
var EC = protractor.ExpectedConditions;
var el = element(by.xpath(xpath));
browser.wait(EC.presenceOf(el), 10000);
return el;
}
this.element_by_id = function(id) {
var EC = protractor.ExpectedConditions;
var el = element(by.id(id));
browser.wait(EC.presenceOf(el), 10000);
return el;
}
this.get_text_by_id = function (id){
return this.element_by_id(id).getText()
};
this.get_text_by_xpath = function (xpath){
var res = this.element_by_xpath(xpath).getText();
return res;
};
};
Проблема в том что если this.element_by_xpath или this.element_by_id все работает т.е. если нету элемента ждем 10 секунд. Но если работает this.get_text_by_id или this.get_text_by_xpath проверки такой уже нету (хотя эелемента нет, 10 секунд не ждем и тест падает). Как ждать элемент правильно?