我有一个.jsp页面,我试图从中获取Web元素并对其执行点击和输入功能。经过尝试并尝试在jsp页面上标识这些Web元素的错误尝试之后,我注意到该页面包含“ iframe”。我查找了能够按名称浏览iframe的资源,还可以按此处通过索引导航iframe
https://www.guru99.com/handling-iframes-selenium.html
但是,我觉得我有一个特殊情况,因为我要处理的所有iframe都没有元素ID或Name。另外,我需要导航到的iframe嵌套在其他iframe中。
据我所知,我仅限于使用 switchTo()。frame(index)
由于所有iframe均未命名,因此我已经尝试过 webDriver.switchTo()。frame(index);
但是因为我正在处理嵌套的iframe,所以我不确定自己是否会到达需要的位置。我已经尝试过
webDriver.switchTo().frame(0);
webDriver.switchTo().frame(1);
webDriver.switchTo().frame(2);
webDriver.switchTo().frame(3);
查看在发生异常之前可以深入研究的范围。这很困难,因为我也无法识别我当前所在的iframe。也许我需要创建当前iframe的对象,然后以这种方式进行深入研究?
代码看起来像这样……
<iframe height="708px" width="100%" marginheight="0" frameborder="0" scrolling="auto" src="..."></iframe>
...
<iframe height="708px" width="100%" marginheight="0" frameborder="0" scrolling="auto" src="..."></iframe>
...
...<iframe onload="..." height="100%" width="100%" marginheight="0" frameborder="0" scrolling="no" src="..."></iframe>
...
... ...<iframe onload="..." height="100%" width="100%" marginheight="0" frameborder="0" scrolling="YES" src="..."></iframe>
这是我需要的地方
我希望能够成功地获取要处理的iframe内的Web元素,但是到目前为止,我一直不成功,因为我不确定如何浏览这些iframe。我假设
webDriver.switchTo().frame(index);
是我唯一的选择,因为iframe未命名且没有元素ID。但这就是为什么我在这里。
答案 0 :(得分:1)
找到了我的问题的答案。
请注意每个iframe都从索引0开始的事实。
因此,如果您嵌套了没有名称或ID的iframe,则类似
(帧C)嵌套在(帧B)中,嵌套在(帧A)
您可以尝试这样
driver.switchTo().frame(0)
driver.switchTo().frame(0)
driver.switchTo().frame(0)
以进入“框架C”
答案 1 :(得分:0)
Bro,由于您受到索引号的限制,为什么不与开发团队联系并要求根据要求设置框架名称。我们在类似情况下也做过