等待超时错误的自定义消息

时间:2015-03-11 05:41:19

标签: testing selenium jasmine protractor end-to-end

我不时使用量角器1.7中引入的"Expected Conditions" feature

用例

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失败消息,如下所述:

1 个答案:

答案 0 :(得分:4)

我相信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);