У меня есть веб-приложение spring mvc, которое в основном запускает тест селена на клиентской машине.
Я создал селеновый концентратор и узел в клиентской системе, используя следующие команды:
>java -jar selenium-server-standalone-3.0.1.jar -role hub
>java -Dwebdriver.ie.driver=D:\IEDriver\IEDriverServer.exe -jar selenium-server-standalone-3.0.1.jar -role node -hub http://localhost:4444/grid/register -timeout 20 -browserTimeout 60
мой контроллер spring принимает параметры для URL-адреса и запускает тест селена, используя этот параметр в клиентской системе с помощью RemoteWebDriver
вот мой весенний контроллер-
@RequestMapping("/remote-app/{policyNumber}")
public @ResponseBody String getOIPA(@PathVariable("policyNumber") String polNumber,HttpServletRequest request) throws MalformedURLException
{
String clientIp = request.getRemoteAddr();
System.out.println("Input policy number : "+polNumber);
System.out.println("Client IP : "+clientIp);
oipaService.openOipaAddressScreenRemote(polNumber,clientIp);
return "hello "+polNumber+" "+clientIp;
}
вот мой метод обслуживания, который запускает тесты -
public void openOipaAddressScreenRemote(String policyNumber,String ip) throws MalformedURLException {
System.out.println("Policy number input : "+policyNumber);
String oipaURL = "https://mydom.com/PASJava_Term";
String userName = "user";
String password = "pwd";
//-------------------
String remoteUrlString = "http://"+ip+":4444/wd/hub";
System.out.println(remoteUrlString);
DesiredCapabilities caps = DesiredCapabilities.internetExplorer();
caps.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
WebDriver driver = new RemoteWebDriver(new URL(remoteUrlString),caps);
//-------------------
driver.get(oipaURL);}
Это дает мне желаемые результаты в клиентских системах моей организации (ПК), которые подключаются к IPv4-адресу клиента.
Но проблема в том, что когда я использую клиенты для ноутбуков в своей организации, он возвращает мне IPv6, к которому приложение не может подключиться.
Они подключаются по именам ноутбуков, например. - lt00123. то есть селен RemoteWebDriver может подключаться к http://lt00123:4444/wd/hub
Как определить адрес клиента (ipv4 или имя машины) по мере необходимости, если это вообще возможно.
РЕДАКТИРОВАТЬ: после использования решения из здесь я решил Проблема с IPv6. И из здесь я обнаружил, что мне нужно настроить концентратор на одном компьютере (желательно на сервере) и узел на клиентском компьютере с использованием концентратора. теперь моему контроллеру Spring не нужно знать адрес клиента. Он уже знает местоположение концентратора.