# Инструкция
## ссылки
Ссылка удалена модератором.
установка окружения
описание для линукса или винды с WSL
1. установить докер
2. Открываем WSL (дальше буду назвать терминалом) или терминал
3. скачиваем утилиту (в видео selenoid 1.3.4 и selenoid 1.3.2)
wget -O cm https://github.com/aerokube/cm/releases/download/1.8.5/cm_linux_amd64
4. даем разрешение на исполнение
chmod +x ./cm
5. Запускаем контейнер Селенойда с зависимостями, он подкачает еще немного имеджов
./cm selenoid start --vnc
6. запускаем веб вью селенойда
./cm selenoid-ui start
---
## сборка и запуск тестов
1. убедимся, что установлены jdk указанной версии
2. переходим на selenoid-ui по localhost:8080
3. переходим в раздел CAPABILITIES, выбираем браузер в котором мы будем выполнять тесты
4. в списке языков выбираем Java
5. Данные проекта заносим в WebDriverConfig
6. в DriverActions и DriverManager указываем RemoteWebDriver вместо WebDriver
7. Запускаем тесты
mvn test
класс вебдрайвера DriverManager
package org.JRub.driver;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.remote.RemoteWebDriver;
import java.net.MalformedURLException;
import java.net.URL;
public class DriverManager {
// private static WebDriver driver;
private static RemoteWebDriver driver;
/*******************************************************************************************************************
**************************************************** Методы класса ************************************************
******************************************************************************************************************/
/**
* Устанавливает настройки веб-драйвера
*/
private static void setDriver() throws MalformedURLException {
driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), WebDriverConfig.configChromeMashup());
driver.manage().window().setSize(new Dimension(1920, 1080));
}
/**
* Получает экзепляр к веб-драйверу
*
* @return экземпляр веб-драйвера
*/
public static WebDriver getDriver() throws MalformedURLException {
if (driver == null) {
setDriver();
}
return driver;
}
public static void closeWebDriver() {
driver.close();
driver.quit();
}
}
класс WebDriverConfig
package org.JRub.driver;
import io.github.bonigarcia.wdm.WebDriverManager;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.logging.LogType;
import org.openqa.selenium.logging.LoggingPreferences;
import org.openqa.selenium.remote.BrowserType;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.RemoteWebDriver;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.logging.Level;
public class WebDriverConfig {
public static ChromeOptions configChromeMashup() throws MalformedURLException {
ChromeOptions options = new ChromeOptions();
options.setCapability("browserVersion", "115.0");
options.setCapability("selenoid:options", new HashMap<String, Object>() {{
/* How to add test badge */
put("name", "Test badge...");
/* How to set session timeout */
put("sessionTimeout", "15m");
/* How to set timezone */
put("env", new ArrayList<String>() {{
add("TZ=UTC");
}});
/* How to add "trash" button */
put("labels", new HashMap<String, Object>() {{
put("manual", "true");
}});
/* How to enable video recording */
put("enableVideo", true);
options.addArguments("--headless=new");
options.setCapability("enableVNC", true);
}});
String downloadFilepath = "C:\\AutoTestDownloads";
HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("profile.default_content_settings.popups", 0);
chromePrefs.put("download.default_directory", downloadFilepath);
options.setExperimentalOption("prefs", chromePrefs);
// endregion
// region на полный экран
// options.addArguments("--start-maximized");
// endregion
// region для обхода невозможности не безопасного подключения
options.addArguments("--ignore-ssl-errors=yes");
options.addArguments("--ignore-certificate-errors");
options.addArguments("--remote-allow-origins=*");
// endregion
options.setCapability(CapabilityType.BROWSER_NAME, BrowserType.CHROME);
options.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
// region Логирование
LoggingPreferences logPrefs = new LoggingPreferences();
logPrefs.enable(LogType.BROWSER, Level.ALL);
options.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);
options.setCapability("enableVNC", true);
options.setCapability("screenResolution", "1920x1080x24");
return options;
}
}
какой-то кубик, а браузера нет. Если создать сессию вручную, все норм работает