我正在使用selenium测试richfaces应用程序。它工作正常,除非我使用reRender
。 (对于那些不熟悉richfaces的人 - 每当ajax请求完成时,部分DOM都会被更新/删除/删除)。
因此,在reRender
selenium(至少IDE)无法找到reRendered区域内的元素之后。 FireBug和WebDeveloper都定位元素,而在“视图源”中元素就在那里。
那么,有没有办法告诉selenium用最新的更改来更新它的DOM“知识”?
Firefox 3.5.6,最新版本的Selenium IDE。
答案 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选择器可能不正确。