Webdriver测试 - 将事件/通知推送到测试

时间:2015-10-27 23:28:12

标签: python selenium-webdriver

情况如下:

我们运行webdriver测试(python)测试胖客户端(Javascript)应用程序。当应用程序遇到错误时(通常:后端没有响应/响应失败)它会显示“我们遇到问题”UI。

目前,当发生这种情况时,webdriver测试只是超时:

a /测试进行一些互动

b /应用程序响应“我们遇到问题”UI

c /测试扫描DOM,寻找在交互成功时应该出现的一些元素

d /由于这些DOM元素不存在,测试重复步骤c /直到超时

当然,我们可以在测试中显式编写一些代码来查找错误通知UI。但是,我们必须在测试中从多个地方调用它(我们可能会错过几个地点等)。

我们正在寻找的是这些方面:

在webdriver下运行时,应用程序不会显示错误UI,而是调用一些API,这将基本上“通知”webdriver测试发生了错误。在测试方面,我们将在此通知上注册一个监听器。在被解雇时,听众将立即使测试失败。

基本上我们正在寻找从应用程序端到webdriver测试端的事件调度API。

webdriver是否提供这样的API?

1 个答案:

答案 0 :(得分:1)

不是真的。 Webdriver有一个忙碌等待的API(表示为Implicit Waits)。

一个可能有点美化的建议是双方使用mini“sdk”,但我不确定Webdriver是否支持多线程(同时有两个查询),即

  1. 如果出现错误,客户端会添加预定义元素。
  2. 测试端产生一个新线程,并对预先确定的元素使用隐式等待(仅在出现错误时添加)。一旦找到元素(意味着存在错误,其中一个字段包含错误消息),就会用错误中断测试线程。
  3. 请参阅similar example here