Es scheint, dass diese Funktion von Selen nicht offiziell unterstützt wird. Tarun Lalwani hat jedoch funktionierenden Java-Code erstellt, um die Funktion bereitzustellen. Verweisen - http://tarunlalwani.com/post/reusing-existing-browser-session-selenium-java/
Hier ist der Arbeitsbeispielcode, der über den obigen Link kopiert wurde:
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");
}
Für Ihren Test muss ein RemoteWebDriver aus einer vorhandenen Browsersitzung erstellt werden. Um diesen Treiber zu erstellen, müssen Sie nur die "Sitzungsinformationen" kennen, dh die Adresse des Servers (in unserem Fall lokal), auf dem der Browser ausgeführt wird, und die Sitzungs-ID des Browsers. Um diese Details zu erhalten, können wir eine Browsersitzung mit Selen erstellen, die gewünschte Seite öffnen und schließlich das eigentliche Testskript ausführen.
Ich weiß nicht, ob es eine Möglichkeit gibt, Sitzungsinformationen für eine Sitzung abzurufen, die nicht von Selen erstellt wurde.
Hier ist ein Beispiel für Sitzungsinformationen:
Adresse des Remote-Servers: http: // localhost: 24266 . Die Portnummer ist für jede Sitzung unterschiedlich. Sitzungs-ID: 534c7b561aacdd6dc319f60fed27d9d6.