0

在使用 Selenium (WebDriver) 测试 ext-js 应用程序时,我有一个按钮,它会弹出一个对话框。然后测试会填写一些表单字段、单击按钮等。问题是 selenium 在对话框完全完成构建之前开始执行这些操作。

我知道我可以告诉 selenium 等待特定元素出现,但是如果我想将这种情况概括为“等待对话框完成加载”,有没有办法做到这一点?

4

1 回答 1

3

简短的回答是,“不,没有简单的方法可以做到这一点。” 要理解为什么会这样,请考虑一下:您如何定义“加载整个 DOM”?是下载最后一个结束</html>标签的时候吗?当它被解析并添加到 DOM 时?是文档readyState属性是“交互式”、“内容就绪”还是其他一些值?通过 JavaScript 添加的 DOM 元素呢?如果那个 JavaScript 是通过 触发的setTimeout()呢?处理 XmlHttpRequests 怎么样?对于所有用例,对于这个问题,没有一个万能的答案是 100% 正确的。

等待一个元素是正确的方法。在使用 extJs 时,识别正确的元素可能具有挑战性,因为会生成 ID。我经常发现在特定的 JavaScript 框架中使用类属性更有效。

于 2012-09-24T22:31:06.573 回答