Selenium Frames和SwitchTo Inclusive StaleReferenceException

时间:2014-12-23 17:03:32

标签: internet-explorer selenium browser

试图从Selenium中抽象出来并测试SAP WebFramework,我发现很难相信这不会起作用。

目前我从根内容(默认内容)开始,输入我发现的每一帧并递归执行。由于您无法轻松地从一个子帧切换到另一个子帧,我只需切换回根并使用记录的WebElement路径切换到帧。

这样我可以从一个元素切换到另一个元素。 (效果很好)。

但是找到一个元素(两个帧中的输入元素距离形成默认内容)并切换回元素是陈旧的。

因此我无法使用该参考。

如果驱动程序指向另一个文档(如框架所代表的那样),那么web元素本身是一个陈旧的引用吗?所以帧的web元素引用不是陈旧的,因为我以相同的顺序访问它们,并且我检索它们的活动帧相同。

有道理但我需要有人为不同的浏览器验证它,如果它是一个怪癖或是否是一个设计决定。

我目前正在使用IE。

1 个答案:

答案 0 :(得分:0)

接缝工作正常的当前解决方案是实际使用框架封装Web元素,并提供跟踪当前文档位置的外观。有了这些信息,我可以随时在任何框架中调用和使用任何web元素,在使用之后我将文档切换回来。

我还扩展了find方法,以便从当前帧或根帧中查找所有帧中的元素。

它仍然是一个早期的测试,但它接缝按预期工作。如果硒可以提供类似框架路径和类似功能的东西,那将是一件好事。

如果没有此功能,使用基于表格和iframe的SAP Web Framework会很痛苦。

如果此解决方案在几周内运行良好,我将更新此答案。如果其他人有其他解决方案或知道Selenium扩展或帮助我这样做的功能,请通知我。