将 Selenium Webdriver 与 JAVA 结合使用,我正在尝试自动化一项功能,我必须打开一个新选项卡才能在那里执行一些操作,然后返回到上一个选项卡(父亲)。
他丢失了 session 并出现错误。
//当我单击此处时,它会打开模式
driver.findElement(By.name("btnSimulateDK")).click();
我尝试过这种方式,如果我在此页面上输入登录名和密码错误,它可能已经在当前 session 中打开并显示我可以执行的 Activity 。
String winHandleBefore = driver.getWindowHandle();
driver.findElement(By.name("btnSimulateDK")).click();
for(String winHandle : driver.getWindowHandles()){
if (!winHandle.equals(winHandleBefore))
driver.switchTo().window(winHandle);
if(driver.getTitle().equals("Title of target window")){
//perform operation on target window
}
}
driver.switchTo().window(winHandleBefore);
}
最佳答案
driver.getWindowHandles() 不保证任何顺序,它还包括当前窗口(父窗口)。
所以不仅仅是切换到窗口
您需要检查 winHandle 是否不等于 winHandleBefore
如果是这样,则只执行 switchTo()
此外,最好确保您到达正确的页面。
喜欢
for(String winHandle : driver.getWindowHandles()){
if (!winHandle.equals(winHandleBefore))
driver.switchTo().window(winHandle);
if(driver.getTitle().equals("Title of target window")){
//perform operation on target window
}
}
关于java - WebDriver 切换到点击按钮后打开的浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30194226/