Переключение фокуса на всплывающее окно и создание снимка экрана - PullRequest
1 голос
/ 09 июля 2011

Я пишу тестовый скрипт в Selen 2, который делает скриншот всплывающего окна. Всплывающее окно в формате PDF.

После нажатия на ссылку я использую код

try {
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("c:\\tmp\\screenshot.png"));
} catch (IOException e) {
    e.printStackTrace();
}
}

Однако, чтобы сделать снимок экрана, нужно сделать только снимок главной страницы, а не всплывающее окно. Есть ли способ получить селен 2, изменить фокус на новое всплывающее окно, сделать снимок экрана, а затем закрыть всплывающее окно и переключиться обратно в главное окно?

1 Ответ

0 голосов
/ 03 апреля 2012

Вы должны переключить фокус драйвера следующим образом:

String mainWindow = driver.getWindowHandle();
for (String handle : driver.getWindowHandles()) {
    if (!handle.equals(mainWindow)) {
        driver.switchTo().window(handle)
        //put your screenshot call here
        driver.close();
        driver.switchTo().window(mainWindow);
    }
}

Это, конечно, сделает снимок экрана всех других окон, если у вас их больше.Тогда вам нужно знать точный дескриптор окна и просто переключиться на него.

...