由于硒不提供切换到窗口(多个窗口)的方法,但我想使用索引来制作自定义方法以切换到不同的窗口。但是下面的代码无法按预期工作。请建议以下方法的最佳实现。
public void switchToWindowIndex(int index) {
Set<String> windows = driver.getWindowHandles();
int totalWin = windows.size();
String winTitle = null;
for (int i =0; i<= totalWin; i++) {
if (i == index) {
winTitle = windows.toArray()[i].toString();
return;
}
System.out.println(windows.toArray()[i].toString());
}
driver.switchTo().window(winTitle);
logger.info("Switched to " + driver.getTitle());
}
提前致谢。
如果必须基于索引切换到窗口,则无需遍历所有窗口句柄。您可以执行以下操作:
public void switchToWindowIndex(int index) {
Set<String> windowHandles = driver.getWindowHandles();
List<String> windowStrings = new ArrayList<>(windowHandles);
String reqWindow = windowStrings.get(index);
driver.switchTo().window(reqWindow);
logger.info("Switched to " + driver.getTitle());
}
代码说明:获取窗口句柄
Set<String> windowHandles = driver.getWindowHandles();
将设置为arraylist的窗口句柄转换为基于索引的字符串
List<String> windowStrings = new ArrayList<>(windowHandles);
根据索引获取窗口句柄字符串
String reqWindow = windowStrings.get(index);
切换到所需窗口
driver.switchTo().window(reqWindow);
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。