Похоже, что эта функция официально не поддерживается селеном. Но Тарун Лалвани создал рабочий код Java, чтобы обеспечить эту функцию. Обратитесь - http://tarunlalwani.com/post/reusing-existing-browser-session-selenium-java/
Вот рабочий пример кода, скопированный по указанной выше ссылке:
public static RemoteWebDriver createDriverFromSession(final SessionId sessionId, URL command_executor){
CommandExecutor executor = new HttpCommandExecutor(command_executor) {
@Override
public Response execute(Command command) throws IOException {
Response response = null;
if (command.getName() == "newSession") {
response = new Response();
response.setSessionId(sessionId.toString());
response.setStatus(0);
response.setValue(Collections.<String, String>emptyMap());
try {
Field commandCodec = null;
commandCodec = this.getClass().getSuperclass().getDeclaredField("commandCodec");
commandCodec.setAccessible(true);
commandCodec.set(this, new W3CHttpCommandCodec());
Field responseCodec = null;
responseCodec = this.getClass().getSuperclass().getDeclaredField("responseCodec");
responseCodec.setAccessible(true);
responseCodec.set(this, new W3CHttpResponseCodec());
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
} else {
response = super.execute(command);
}
return response;
}
};
return new RemoteWebDriver(executor, new DesiredCapabilities());
}
public static void main(String [] args) {
ChromeDriver driver = new ChromeDriver();
HttpCommandExecutor executor = (HttpCommandExecutor) driver.getCommandExecutor();
URL url = executor.getAddressOfRemoteServer();
SessionId session_id = driver.getSessionId();
RemoteWebDriver driver2 = createDriverFromSession(session_id, url);
driver2.get("http://tarunlalwani.com");
}
Ваш тест должен иметь RemoteWebDriver, созданный из существующего сеанса браузера. Чтобы создать этот драйвер, вам нужно знать только «информацию о сеансе», то есть адрес сервера (в нашем случае локальный), на котором запущен браузер, и идентификатор сеанса браузера. Чтобы получить эти сведения, мы можем создать один сеанс браузера с использованием selenium, открыть нужную страницу и, наконец, запустить настоящий тестовый скрипт.
Я не знаю, есть ли способ получить информацию о сеансе, который не был создан селеном.
Вот пример информации о сеансе:
Адрес удаленного сервера: http: // localhost: 24266 . Номер порта отличается для каждого сеанса. Идентификатор сеанса: 534c7b561aacdd6dc319f60fed27d9d6.