繁体   English   中英

如何使用Selenium WebDriver处理叠加/弹出窗口

[英]How to handle overlay/popup window using selenium webdriver

我正在尝试通过网页自动(服务器的)初始配置。 击中我的服务器ip https:/ localhost:4443并输入我的凭据后,我得到一个更改密码的窗口(覆盖/弹出窗口)。

问题:-如果我从另一台m / c或另一台浏览器浏览相同的ip,则会在窗口上方显示一个窗口,即在更改密码窗口上显示一个窗口( 请单击链接以查看屏幕截图 )。

我尝试的是获取窗口的句柄,但它不起作用,仅提供一个句柄。

**它也没有框架。

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上按钮的任何其他方式。

如果附加窗口是异步打开的,则可能在创建之前就过早检查了它(使用getWindowHandles() )-这是Selenium测试和异步页面更新的常见问题。

如果这是问题所在,则可以通过在两次等待之间进行几次尝试来解决,每次检查是否都出现了新窗口。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM