RemoteWebDriver не может повторно подключиться к сокету HTTP

Я использую селен для отправки HTTP-запросов на HTTP-сервер и получаю следующую ошибку после закрытия и повторного открытия соединения из тестового кода через тот же IP/порт (127.0.0.1:8080). Я почти уверен, что приложение HTTP-сервера закрывает сокет сервера при выходе, однако я не уверен, что тестовый (клиентский) код закрывает сокет.

Моя реализация RemoteWebDriver приведена ниже, и я предполагаю, что может потребоваться переопределить stopClient(), чтобы закрыть сокет, но чем?

public class MyWebDriver extends RemoteWebDriver {

public MyWebDriver(URL url, Capabilities desiredCapabilities) {
    super(new MyCommandExecutor(url), desiredCapabilities);
}

public Response sendCommand(String command){
    Map<String, Object> parameters = new HashMap<String, Object>();
    parameters.put("command", command);


    Response response = execute("sendCommand", parameters);

    return response;
}

}

org.openqa.selenium.remote.UnreachableBrowserException: не удалось начать новый сеанс. Возможные причины: неверный адрес удаленного сервера или сбой при запуске браузера. Информация о сборке: версия: «2.44.0», ревизия: «76d78cf323ce037c5f92db6c1bba601c2ac43ad8», время: «2014-10-23 13:11:40» Информация о системе: хост: «...», ip: «172.27.3.221», os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.10.1', java.version: '1.7.0_67' Информация о драйвере: driver.version: MyWebDriver на org.openqa. selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:593) в

...

Причина: org.apache.http.conn.HttpHostConnectException: не удалось подключиться к 127.0.0.1:8080 [/127.0.0.1]: в подключении отказано

PS: я должен упомянуть, что клиентский код может повторно подключиться к серверу через 30 секунд или около того - ОС должна освободить сокет после этого времени: Процесс Java в Mac OSX не освобождает сокет


person Alex    schedule 11.03.2015    source источник
comment
PS: я должен упомянуть, что клиентский код может повторно подключиться к серверу через 30 секунд или около того - ОС должна освободить сокет после этого времени: stackoverflow.com/questions/10312488/   -  person Alex    schedule 11.03.2015
comment
Вероятно, RemoteWebDriver не освобождает порт сразу после его отключения. попробуй с другим портом   -  person Saifur    schedule 11.03.2015
comment
Я не думаю, что клиент открывает какой-либо порт. Однако вы можете использовать driver.close(), а затем driver.quit(). драйвер является экземпляром MyWebDriver.   -  person Mayur Shah    schedule 11.03.2015