我正在使用Selenium Browser Automation框架测试站点。在测试期间,我切换到特定的框架,我们称其为“ frame_1”。稍后,我在Select类中使用deselectAll()方法。此后不久,我得到了StaleElementReferenceException,即IE框架参考问题,其中“ frame_1”不再是目标。
但是,如果我在相关的多选框上将deselectAll()注释掉,则一切照常进行(当然,不清除多选)。
由于无论是否调用deselectAll()方法都在操纵相同的元素,并且仅当我调用deselectAll()时才获得帧引用异常,因此我怀疑此方法调用会影响目标帧,或者等等...
这是预期的行为和/或我缺少什么吗?
最佳答案
事实证明,此问题是在deselectAll()调用之前触发的。首先,我创建了一个Select对象,其次,一些JavaScript代码从该选择列表中删除了一个项目。此时,Select对象已过时,因此deselectAll()调用失败(此后没有其他任何操作)。