我需要自动化应用程序链接打开一个新窗口的场景,我需要与该窗口进行交互。我成功地做到了这一点,但是我遇到的成功率大约是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。
在我无法与新打开的窗口进行交互的情况下,如果显示我的问题,窗口也不会最大化。
非常感谢。
答案 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");