如何使用Selenium WebDriver和Java在Chrome中切换窗口?

时间:2014-01-30 10:57:32

标签: java eclipse selenium-webdriver

在我的网络应用程序中,我需要点击出现的chrome打印预览窗口的取消按钮。我发现Web中的一些代码可以在窗口之间切换,但出于某种原因,它似乎并没有起作用。请帮忙。

    driver.findElement(By.xpath("//*[@id='PrintBill']")).click();
    driver.findElement(By.xpath("//*[@id='savebill']")).click(); 
    // This is in the parent window.

    for(String winHandle : driver.getWindowHandles()){
        driver.switchTo().window(winHandle);
    }

    driver.findElement(By.xpath("//*[@id='print-header']/div/button[2]")).click();
    //this is in the child window(print preview window)

这是我从...... http://seleniumwebdriverfaq.blogspot.in/2012/02/how-can-i-switch-webdriver-control-to_4426.html

找到代码的地方

1 个答案:

答案 0 :(得分:0)

看起来问题是Chrome打印页面不仅仅是另一个浏览器窗口,而是一个模式对话框,这意味着Selenium可能无法与之交互。所以你可以做的是使用机器人。以下是您的问题的示例解决方案。直接发布#11:

Handling the print dialog box

我在示例页面上快速检查了它并且工作正常。