【发布时间】:2014-12-26 01:19:54
【问题描述】:
我正在编写一个 java 工具,它将为最终用户创建 selenium 脚本。在帧切换的情况下,我不能依赖最终用户找出帧信息。用户可以提供定位器值,但我的工具需要能够确定它属于哪个框架(它是层次结构)并在采取下一步行动之前切换到那个框架。
有什么方法可以让我的 Selenium Web 驱动程序获取该框架?
PS:我可以使用已知帧对工作流程进行硬编码并进行切换。
【问题讨论】:
我正在编写一个 java 工具,它将为最终用户创建 selenium 脚本。在帧切换的情况下,我不能依赖最终用户找出帧信息。用户可以提供定位器值,但我的工具需要能够确定它属于哪个框架(它是层次结构)并在采取下一步行动之前切换到那个框架。
有什么方法可以让我的 Selenium Web 驱动程序获取该框架?
PS:我可以使用已知帧对工作流程进行硬编码并进行切换。
【问题讨论】:
我能想到的一个解决方案是,检查当前上下文(帧)上是否存在提供的定位器/元素,如果它引发 NoSuchElementException 异常,则获取页面上的所有可用帧 - driver.findElements(By.tagName("iframe")) 并在循环中尝试要切换到基于 WebElementdriver.switchTo().frame(<element>) 的可用帧,现在再次检查是否存在提供的定位器/元素。找到提供的定位器/元素后,中断循环并继续执行。
【讨论】: