网页更新后我收到以下错误。 “元素不再有效(警告:服务器未提供任何堆栈跟踪信息)” 该页面有一个框架集。 frame1和frame2在框架集下。 搜索查询在frame1上执行,结果在frame2上更新。 结果更新后,似乎HTML已更新。 当我尝试从frame1切换到frame2时。没有这样的框架存在。
这是我尝试过的东西。 1. switchTo()按名称和帧索引#(不起作用) 2. navigate()。refresh()(在frame2上丢失结果)
如何通过Selenium控制新更新的frame2? 谢谢!
答案 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