2016-12-02 8 views
1

я получить RemoteWebDriver от ступицы следующим образом:Найдите, на каком узле запущен мой удаленный драйвер selenium-grid?

RemoteWebDriver driver = new RemoteWebDriver( 
             new URL("http://whatever:4444/wd/hub"), 
             DesiredCapabilities.internetExplorer()); 

Есть ли способ программно узнать, какой узел в сети удаленный драйвер работает на?

Я хочу зарегистрировать это, чтобы отслеживать прерывистые провалы теста.

+0

Возможный дубликат [Как получить имя или адрес сервера запуска с Selenium Server 2.20] (http://stackoverflow.com/questions/9771932/how-to-get-executing-server-name-or-address-with -selenium-server-2-20) –

+0

Принимаемый ответ на дублированный вопрос неверен. –

ответ

2

Пожалуйста, обратитесь к моему сообщению в блоге, чтобы узнать, как найти узел ip и порт, к которому был направлен тест.

Сообщение в блоге: https://rationaleemotions.wordpress.com/2016/01/15/where-did-my-test-run/

В двух словах, вот что вам нужно сделать (блог я делил имеет сложное объяснение и требуется код)

  • Получить идентификатор сеанса из WebDriver через Webdriver.getSessionId()
  • Затем вы добавляете идентификатор сеанса, полученный с предыдущего шага, к URL-адресу http://localhost:4444/grid/api/testsession?session= (замените localhost фактическим IP-адресом сетки и замените 4444 на порт, на котором прослушивает сеть) и триггер вызов POST.
  • Из ответа JSON вы анализируете значение атрибута proxyId как URL-адрес и извлекаете из него IP-адрес и порт.

Это готовое потребление через библиотеку talk2grid, которую я построил.