在dom更新后,Selenium无法找到组件(reRender)

时间:2009-12-21 16:50:17

标签: selenium richfaces

我正在使用selenium测试richfaces应用程序。它工作正常,除非我使用reRender。 (对于那些不熟悉richfaces的人 - 每当ajax请求完成时,部分DOM都会被更新/删除/删除)。

因此,在reRender selenium(至少IDE)无法找到reRendered区域内的元素之后。 FireBug和WebDeveloper都定位元素,而在“视图源”中元素就在那里。

那么,有没有办法告诉selenium用最新的更改来更新它的DOM“知识”?

Firefox 3.5.6,最新版本的Selenium IDE。

2 个答案:

答案 0 :(得分:2)

我正在使用在Ubuntu Linux上运行的Fifefox 3.6.8,Selenium IDE 1.0.7和RichFaces 3.3.1。我没有这个问题。

我有一个简单的表单,选择单选按钮会触发a:outputPanel的reRender。最初,面板是空的。如果选择了右侧单选按钮,则会满足渲染条件,并且会使用其子组件重新渲染该面板。我能够设置一个waitForCondition来查找将显示为面板子元素的元素id,并且我可以在子元素出现后验证它们。当我在Firefox中右键单击时,Selenium IDE会正确识别这些子元素。

答案 1 :(得分:1)

Selenium不保留DOM的缓存版本。它不能,因为它使用JavaScript并且所有javascript DOM查询始终是live

您在使用什么来查找元素?如果您使用的是Xpath / CSS选择器,那么XPath可能不再有效,或者CSS选择器可能不正确。