在Selenium中控制更新的帧

时间:2015-12-21 22:25:59

标签: selenium

网页更新后我收到以下错误。 “元素不再有效(警告:服务器未提供任何堆栈跟踪信息)” 该页面有一个框架集。 frame1和frame2在框架集下。 搜索查询在frame1上执行,结果在frame2上更新。 结果更新后,似乎HTML已更新。 当我尝试从frame1切换到frame2时。没有这样的框架存在。

这是我尝试过的东西。 1. switchTo()按名称和帧索引#(不起作用) 2. navigate()。refresh()(在frame2上丢失结果)

如何通过Selenium控制新更新的frame2? 谢谢!

1 个答案:

答案 0 :(得分:0)

我的猜测:

在从frame1切换到frame2之前,您需要使用driver.switchTo().defaultContent();切换到默认内容

从例外情况来看,您似乎尝试使用已更改和/或不再存在的元素。

检查算法:
 1.查找frame1
 2.切换到frame1
 3.在frame1内做行动  4.切换到默认内容
 5.查找frame2
 6.切换到frame2
 7.在frame2

中获取信息

注意:

  • 在每个Find *步骤中使用显式等待,以确保它不是等待问题。
  • 确保在frame2(步骤3)内的操作后找到frame1(步骤5)

明确的等待文档:http://www.seleniumhq.org/docs/04_webdriver_advanced.jsp#explicit-waits