我正在尝试通过网页自动初始配置(我的服务器)。点击我的服务器IP https:/ localhost:4443并输入我的凭据后,我得到一个更改密码的窗口(覆盖/弹出窗口)。
问题: - 如果我从另一个m / c或另一个浏览器浏览相同的ip,我会在窗口上显示一个窗口,即更改密码窗口(Please click the link to see the screenshot)上的另一个窗口。
我尝试的是获取窗口的句柄,但它不起作用,它只提供一个句柄。
**它也不是框架。
HTML代码 - https://dl.dropboxusercontent.com/u/91420517/Html_Code.JPG
这是我的代码
WebDriver driver=new FirefoxDriver();
driver.get("https://localhost:4443/ControlPoint/");
driver.findElement(By.xpath("//*[@id='name']")).sendKeys("xxxxxx");
driver.findElement(By.xpath("//*[@id='pass']")).sendKeys("xxxxxx");
driver.findElement(By.xpath("//*[@id='loginForm123']/div[6]/div[1]/div")).click();
Set<String> winIds = driver.getWindowHandles();
System.out.println("Total Windows --- " + winIds.size()); // its resulting the size as 1 which is not correct.
Iterator<String> it = winIds.iterator();
String mainWin=it.next();
String changeWin=it.next();
String shareWin =it.next();
driver.switchTo().window(shareWin);
String warning = driver.findElement(By.xpath("html/body/div[4234]/div[1]/span")).getText(); // to get the text on 3 window
System.out.println(warning);
如何解决此问题。请帮助。点击窗口3上的按钮的任何其他方式。
答案 0 :(得分:1)
如果异步打开附加窗口,那么在创建它之前,您可能过早地检查它(getWindowHandles()
} - 这是Selenium测试和异步页面更新的常见问题。
如果这是问题,可以通过在中间等待几次尝试来解决,每次检查是否出现了新窗口。