Я только что установил плагин Selenium Grid для Jenkins и начал изучать распространение тестов с его помощью. Я создал простой тест, который просто открывает браузер, получает URL-адрес и затем закрывает браузер. Кажется, это работает для Chrome (на Mac) и IE (в Windows), но по какой-то причине при использовании Firefox 18.0.2 на Mac я вижу открытое окно браузера, но URL-адрес, который я должен загрузить, никогда не отображается в URL-адресе bar и все зависает, и я получаю сообщение об ошибке:
WebDriverException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
Где-то в конструкторе висит создание RemoteDriver. Я добавил оператор трассировки сразу после конструктора, и код туда не попадает.
Странно то, что тест выполняется просто отлично, если я запускаю локальный узел Selenium Grid на той же машине, которая выходит из строя, и направляю свои тесты туда, а не в концентратор Jenkins Selenium Grid. Таким образом, это может быть проблема с тем, как я настроил узел Jenkins, но я не могу понять, как это устранить. Любая помощь будет оценена по достоинству.
Мой код выглядит примерно так:
WebDriver driver = null;
public Browser(String gridUrl) {
driver = makeFirefox(gridUrl);
driver.get(url);
}
private WebDriver makeFirefox(String gridUrl) {
FirefoxProfile prof = new FirefoxProfile();
prof.setEnableNativeEvents(true);
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability(FirefoxDriver.PROFILE, prof);
WebDriver driver = null;
try{
driver = new RemoteWebDriver(new URL(gridUrl), capabilities);
} catch (MalformedURLException e) {
e.printStackTrace();
}
return driver;
}