Приветствую!
В кратце про тест:
Тест проверяет, что данные в таблице на сайте соответствуют данным в экспортируемые в csv, xls формат файлы
Возникла проблема с получением имени файла, который скачал
String fileName;
String filePath;
driver.get("chrome://downloads");
JavascriptExecutor js = (JavascriptExecutor) driver;
fileName = (String) js.executeScript("return document.querySelector('downloads-manager').shadowRoot.querySelector('#downloadsList downloads-item').shadowRoot.querySelector('div#content #file-link').text");
File folder = new File(System.getProperty("user.dir"));
filePath = folder + "/" + fileName;
return filePath;
это отлично работает локально, я открываю страницу chrome://downloads и с помощью JS скрипта достаю имя файла.
После того как тесты начали ранить через CI на линукс сервере в headless режиме, я увидел, что эти тесты постоянно падают с ошибкой:
javascript error: Cannot read property ‘shadowRoot’ of null
на скриншоте просто белый экран. На сколько я понял, то в headless режиме есть проблема с открытием downloads. Но, не разобрался пока что, как эту проблему решить.
Если кто-то сталкивался с подобным или можете предложить другие стабильные варианты получения имени файла буду очень благодарен!