等待使用Selenium加载ext-js对话框

时间:2012-09-24 18:52:47

标签: java extjs selenium webdriver

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

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

1 个答案:

答案 0 :(得分:3)

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

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