java - 如何将 selenium 的焦点移动到新标签窗口?
问题描述
我正在单击一个链接,这会导致新选项卡。我想移动到该选项卡,关闭该选项卡,然后再次切换回父窗口。
我编写了以下代码,它显示错误,实际上在我的代码中,控件没有移动到子窗口。请参阅以下代码,并帮助我:
WebDriver driver;
System.setProperty("Webdriver.chrome.driver", "chromedriver.exe");
driver = new ChromeDriver();
driver.get("https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_win_open");
String parent_window = driver.getWindowHandle();
driver.switchTo().frame("iframeResult");
driver.findElement(By.xpath("//button[contains(text(),'Try it')]")).click();
Thread.sleep(4000);
String child_window = driver.getWindowHandle();
System.out.println(parent_window);
System.out.println(child_window);
解决方案
你也可以用这种代码来做,标签之间的切换。
public static void main(String[] args) throws Exception {
System.setProperty("webdriver.chrome.driver", "Location of chromedriver exe file");
System.out.println("Ready to launch the browser");
WebDriver driver = new ChromeDriver();
driver.get("https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_win_open");
driver.switchTo().frame("iframeResult");
driver.findElement(By.xpath("//button[contains(text(),'Try it')]")).click();
Thread.sleep(4000);
//store parent window value in string
String parentWindow = driver.getWindowHandle();
//store the set of all windows
Set<String> allwindows= driver.getWindowHandles();
for (String childWindow : allwindows) {
if(!childWindow.equals(parentWindow))
{
driver.switchTo().window(childWindow);
System.out.println("child window");
System.out.println(driver.getTitle());
// do some operation
//Closing the Child Window.
driver.close();
}
}
driver.switchTo().window(parentWindow);
System.out.println("Parent window");
System.out.println(driver.getTitle());
}
推荐阅读
- nginx - 使用 nginx 和 ffmpeg 直播马赛克
- java - java将一种可选类型转换为另一种可选类型
- javascript - 在按钮单击时应用 Css
- html - 特殊字符未在 UI 中显示
- css - Angular 6 如何在指令中添加多种样式?样式元素未与指令 (addClass) 连接
- python - 使用基于特定列的 numpy 对矩阵进行反向排序
- scala - 线程“主”org.apache.spark.sql.catalyst.errors.package$TreeNodeException 中的异常:执行,树:Exchange SinglePartition
- php - php加入字符串不保存文件
- java - Firebase Firestore 集合的最大值
- python-3.x - 为什么“打开”函数的输出不允许我属性索引?