Я запускаю серию автоматических графических тестов с использованием Selenium в Java. Эти тесты регулярно проверяться принимает скриншоты с помощью:Как сделать драйвер Selenium firefox делать скриншоты только просматриваемой страницы
public static void takeScreenshot(String screenshotPathAndName, WebDriver driver) {
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
try {
FileUtils.copyFile(scrFile, new File(screenshotPathAndName));
} catch(Exception e) {
e.printStackTrace();
}
}
Это прекрасно работает в Chrome и IE, однако в Firefox я получаю большие куски пробельных под скриншотами. Я подозреваю, что пробелы на самом деле являются частью самой страницы, но обычно скрыты от просмотра в браузере (полоса прокрутки останавливается перед пробелом). Я сделал быстрый тест с
driver.get("http://stackoverflow.com/");
takeScreenshot("D:\\TestRuns\\stackoverflow.png", driver);
и обнаружил, что при использовании драйвера Firefox всей страницы в захваченных на скриншоте, в то время как с драйвером Chrome только то, что показано в браузере захватывается.
Есть ли способ заставить Firefox-драйвер сделать снимок экрана, содержащий ТОЛЬКО то, что действительно можно увидеть в браузере (что может видеть фактический пользователь)?
Не работает. Все еще получается скриншоты, которые показывают всю страницу, а не только то, что видно в браузере. – EJS