目前我有一个问题 - 我想从当前帧切换到父帧。应用程序有很多内部框架,因此不能使用 driver.switchTo().defaultContent()。在此讨论中,建议了可能的解决方案 - 您应该记住您访问过的所有帧,并使用从顶部迭代它们
driver.switchTo().defaultContent()
主要问题在于,在我的应用程序中,有时我被迫使用切换到由 xpath 和其他定位器定位的帧 - 使用 WebElement 切换。并且正如上面讨论中已经提到的那样,在切换所有定位的 WebElement 后,它变得无效,不能用于切换。所以我应该有办法再次在框架内找到这个元素。虽然我可以找到执行某些 js 调用(即)的该框架元素的索引(WebElement)executeScript("window.frames[i]").equals(myWebElement)
,但事实并非如此,因为当从页面中删除某些框架时,索引可能会发生变化。我可以尝试查找框架名称和 ID,但可能未指定它们。
因此,我看到了唯一可能的解决方案 - 将某些属性设置为当前选择的父级框架 - 示例属性为活动且值为 true。此外,我应该能够对所有可以切换帧的方法执行此操作(存在 3 个)。在所有方法中,我都可以接收表示框架的 WebElement,但据我所知,要更改属性值,您应该执行一些 js 代码。所以问题是如何在js中定位当前的WebElement。
感谢您阅读这一切。