Selenium: установите узел, который выполняется по ip (или как-то еще)
Я использую Selenium Grid с концентратором на сервере. Для упрощения отладки я хочу выполнить тест на моем конкретном компьютере, а не на других узлах. (все узлы всегда онлайн) есть ли что-то вроде ip-возможности? (Все узлы, работающие с одним и тем же браузером и платформой и т. Д.) В противном случае я должен сделать Grid-Execution.java и Local-Execution.java? Если у вас есть другая идея, как это сделать, дайте мне знать! Привет Арно
1 ответ
В нашей структуре есть системное свойство "IsLocal", и оно всегда верно. Мы устанавливаем его в false и передаем дополнительный параметр, такой как hub ip и номер порта, если мы хотим выполнить в сетке.
Кроме того, это значение мы можем передать из командной строки maven. Если мы выполняем из IDE, тогда значение равно нулю, если оно равно нулю, оно будет принимать значение по умолчанию, то есть true. Так что он всегда будет выполняться на локальном. если нам нужно проверить его на сетке, мы передаем системное значение IsLocal из maven или командной строки.
В нашем драйвере Factory запущен браузерный метод. мы всегда проверяем это свойство, если оно истинно, мы запускаем браузер, используя локальный драйвер, иначе удаленный веб-драйвер. что-то вроде ниже кода.
boolean IsLocal=true;
if(System.getProperty("IsLocal")!=null){
IsLocal=System.getProperty("IsLocal");
}
if(IsLocal){
driver=new FirefoxDriver();
}
else{
driver= new RemoteWebDriver(HUBURL, DesiredCap);
}