У меня есть Java-приложение, которое в Ubuntu с Selenium и ChromeDriver удаляет некоторые веб-сайты и получает некоторые данные.Я хотел автоматизировать регистрацию ошибок, в том числе создание скриншота, если генерируются определенные исключения (все уже реализовано и работает).По сути, именно здесь я создаю экземпляр своего драйвера:
System.setProperty("webdriver.chrome.driver", System.getProperty("user.home") + driversPath + "chromedriver");
ChromeOptions options = new ChromeOptions();
if(headless)
options.addArguments("--headless");
options.setCapability(CapabilityType.SUPPORTS_JAVASCRIPT, true);
options.setCapability(CapabilityType.TAKES_SCREENSHOT, true);
this.driver = new ChromeDriver(options);
this.driver.manage().window().setSize(new Dimension(1366, 768));
И вот как я создаю из него скриншоты:
File srcFile = ((TakesScreenshot) this.driver).getScreenshotAs(OutputType.FILE);
try {
// creates file at System.getProperty("user.dir")
FileUtils.copyFile(srcFile, new File(path));
//catch and so on
С Boolean headless = false;
это работает именно так, как я хотел, и ямогу видеть мои скриншоты просто отлично.Теперь я хотел бы протестировать какой-нибудь VPS, и мне нужно было сначала использовать его в автономном режиме.
При Boolean headless = true;
я заметил, что моя автоматизация работала так, как предполагалось в сгенерированном журнале, но когда я намеренно отключился, чтобы выдать несколько ошибок, я заметил, что все скриншоты были пустыми изображениями.Я посмотрел здесь , но так как при отключенном безголовом я получил скриншоты, этот ответ для меня не имеет значения.
Я попытался использовать setHeadless(boolean headless)
из ChromeOptions
, который имеет этот код:
public ChromeOptions setHeadless(boolean headless) {
args.remove("--headless");
if (headless) {
args.add("--headless");
args.add("--disable-gpu");
}
return this;
}
Но это тоже не сработало.Я нашел этот вопрос , но так как я уже получил, как получить некоторые скриншоты из браузера 'headfull', я думаю, что это тоже не мой случай.
Я использую ChromeDriver из эта ссылка (2.42) (самая последняя на тот момент, когда был задан этот вопрос) и эта зависимость:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.9.1</version>
</dependency>