我正在编写一个java工具,它将为最终用户创建selenium脚本。在帧切换的情况下,我不能依赖最终用户来确定帧信息。用户可以提供定位器值,但我的工具需要能够确定它属于哪个帧(它的层次结构)并在采取下一个操作之前切换到该帧。
有没有办法让我的Selenium Web Driver获得该框架?
PS:我可以用已知的帧硬编码工作流程并进行切换。
答案 0 :(得分:0)
我能想到的一个解决方案是检查当前上下文(框架)上是否存在提供的定位符/元素,如果它抛出NoSuchElementException异常,则获取页面上所有可用的帧 - driver.findElements(By.tagName("iframe"))
并在循环尝试切换到基于WebElement driver.switchTo().frame(<element>)
的可用帧,现在再次检查是否存在提供的定位符/元素。找到提供的locator / element后,打破循环并继续执行。