Пользовательское сообщение об ошибке тайм-аута ожидания

Время от времени я использую функцию "Ожидаемые условия", представленную в транспортире 1.7.

Случай использования:

var EC = protractor.ExpectedConditions;
browser.wait(EC.visibilityOf(header.displayName), 10000);

где header — это объект страницы.

Если header.displayName не станет видимым через 10 секунд, будет выброшена ошибка:

[firefox #4]   2) Describe description here
[firefox #4]    Message:
[firefox #4]      Error: Wait timed out after 10082ms
[firefox #4]    Stacktrace:
[firefox #4]      Error: Wait timed out after 10082ms
[firefox #4] ==== async task ====
[firefox #4]     at [object Object].<anonymous> (/Path/to/project/test/e2e/my.spec.js:38:17)

Что не совсем читабельно и требует некоторого времени для понимания и небольшого исследования.

Вопрос:

Можно ли настроить такую ​​​​ошибку тайм-аута ожидания?


К вашему сведению, мы можем предоставить пользовательские сообщения об ошибках expect, как описано здесь:


person alecxe    schedule 11.03.2015    source источник


Ответы (1)


Я считаю, что browser.wait() принимает 3 параметра: условие, необязательный тайм-аут и необязательное описательное сообщение. (Я почти уверен, что это документ: http://angular.github.io/protractor/#/api?view=webdriver.WebDriver.prototype.wait, но мне трудно убедиться, что WebDriver отображается как browser в транспортире). Итак, вы должны быть в состоянии сделать:

var EC = protractor.ExpectedConditions;
var timeoutMS = 10 * 1000;
var timeoutMsg = "Waiting for header displayName";
browser.wait(EC.visibilityOf(header.displayName), timeoutMS, timeoutMsg);
person P.T.    schedule 11.03.2015
comment
Вот и все, не верится, что он встроенный, очень удобный. Спасибо еще раз! - person alecxe; 11.03.2015