Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

WebDriverRunner.setWebDriver(getChrome()); как проверить что документ загружен

selenide
webdriver
Теги: #<Tag:0x00007f7b650f5b30> #<Tag:0x00007f7b650f58b0>

(Сержан Есенбек) #1

private static WebDriver getChrome () {
final ChromeDriverService service = new ChromeDriverService.Builder()
.usingDriverExecutable(new File(“C:/Users/serzhan/Desktop/Selenium/chromedriver.exe”))
.usingAnyFreePort()
.build();
final ChromeOptions option = new ChromeOptions();
option.addArguments("–always-authorize-plugins", “–start-maximized”, “–scroll-end-effect=1”);
EventFiringWebDriver newDriver = new EventFiringWebDriver(new ChromeDriver(service, option));
return newDriver;
}

как можно изменить в настройках ChromeDriver Расположение скачиваемых файлов
потом через Джаву проверить что документ загружен


(Roma Marinsky) #2

Подключи себе библиотеку io.github.bonigarcia:webdrivermanager:1.6.0

И в коде напиши “ChromeDriverManager.getInstance().setup();”

И забудь о скачивании экзешников)


(asolntsev) #3

Правильно я понимаю, что ты используешь Selenide?
Тогда всё гораздо проще. Не надо менять никаких настроек вебдрайвера. Просто используй метод download:

File downloadedFile = $("#loadReport").download();

Если эта операция прошла без ошибок, значит, файл скачался. Дальше можешь проверять содержимое файла, если надо.


(Сержан Есенбек) #4

мне кидает на исключение
java.lang.IllegalArgumentException: The element does not have href attribute: Скачать

только через href можно скачивать ?


(Сержан Есенбек) #5

может я не правильно делаю ((((


(asolntsev) #6

Да, по умолчанию селенид скачивает файлы через href. Это самый надёжный способ. Поищите, может, у вас всё-таки есть href, просто у какого-нибудь другого соседнего элемента?

Если всё-таки нет, то есть и второй способ: через прокси-сервер. Установите настройку Configuration.downloadMode = PROXY (как-то так, наизусть не помню).