硒切换窗具有不同的成功率

时间:2016-12-01 07:36:20

标签: java selenium selenium-webdriver

我需要自动化应用程序链接打开一个新窗口的场景,我需要与该窗口进行交互。我成功地做到了这一点,但是我遇到的成功率大约是75%,其他25%导致问题,因为我无法与新打开的窗口进行交互。这是我目前的解决方案。

    // Click the link to open the new window
    driver.findElement(By.linkText("Link")).click();
    Thread.sleep(1000); // Sleep for 1 second

    // Switch to the new window
    for (String winHandle : driver.getWindowHandles()) {
        driver.switchTo().window(winHandle);
    }

    Thread.sleep(1000);
    driver.manage().window().maximize(); // Maximise the new window

我已经尝试过玩睡眠计时器,但这些似乎没什么帮助。我也在使用Selenium Internet Explorer WebDriver。

在我无法与新打开的窗口进行交互的情况下,如果显示我的问题,窗口也不会最大化。

非常感谢。

2 个答案:

答案 0 :(得分:0)

// Click the link to open the new window
driver.findElement(By.linkText("Link")).click();
Thread.sleep(1000); // Sleep for 1 second

// Switch to the new window
for (String winHandle : driver.getWindowHandles()) {
    driver.switchTo().window(winHandle);
}

// After switching to the new window.
// wait for some time either use thread.sleep or better to wait on a condition like follows :

WebDriverWait wait = new WebDriverWait(driver, 60);
wait.until(ExpectedConditions.elementToBeClickable(By.id("btnNext")));

// then make the window to maximize   
driver.manage().window().maximize();

答案 1 :(得分:0)

您可以使用ChromeOptions始终以最大化模式打开浏览器。

OR

打开浏览器连接后立即使用此driver.manage().window().maximize();,这样当您打开/尝试导航到新链接时,它会自动最大化。

镀铬驱动程序示例如下所示;

    ChromeOptions chromeOptions = new ChromeOptions();
    chromeOptions.addArguments("--start-maximized");

    System.setProperty("webdriver.chrome.driver","Path to chromedriver.exe");  
    driver = new ChromeDriver(chromeOptions);
    driver.get("http://google.com");