情况是这样的:
我们运行 webdriver tests (python) 测试胖客户端 (Javascript) 应用程序。当应用程序遇到错误(通常:后端不响应/响应失败)时,它会显示“我们遇到了问题”UI。
目前,当发生这种情况时,webdriver 测试只是超时:
a/测试进行一些交互
b/应用程序响应“我们有问题”UI
c/测试扫描 DOM,寻找交互成功时应该出现的一些元素
d/由于这些 DOM 元素不存在,测试重复步骤 c/直到超时
当然,我们可以在测试中显式编写一些代码来查找错误通知 UI。然而,我们将不得不在我们的测试中从多个地方调用它(而且我们可能会错过几个地方等)
我们正在寻找的是这些方面的东西:
当在 webdriver 下运行时,应用程序不会显示错误 UI,而是调用一些 API,这些 API 基本上会“通知”webdriver 测试发生了错误。在测试方面,我们将在此通知上注册一个监听器。触发时,监听器将立即使测试失败。
本质上,我们正在寻找一个从应用程序端到 webdriver 测试端的事件调度 API。
webdriver 是否提供这样的 API?
最佳答案
不是真的。 Webdriver 有一个用于忙等待的 API(表示为 Implicit Waits )。
一个可以稍微美化它的建议是在两侧使用迷你“sdk”,但我不确定 Webdriver 是否支持多线程(同时两个查询)即
- 客户端添加预定义元素以防出现错误。
- 测试端产生一个新线程并对预先确定的元素使用隐式等待(仅在出现错误时添加)。一旦他找到该元素(意味着存在错误,其中一个字段包含错误消息),就会中断带有错误的测试线程。
参见 similar example here .
关于python - Webdriver 测试 - 将事件/通知推送到测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33380309/