bonigarcia / webdrivermanager

Automated driver management and other helper features for Selenium WebDriver in Java
https://bonigarcia.dev/webdrivermanager/
Apache License 2.0
2.56k stars 675 forks source link

The new instance of create() has the same windowhandle ID. #1304

Closed inikolao closed 2 months ago

inikolao commented 3 months ago

Description of the problem:

While i am trying to create multiple webdriver instances via create() function as bellow

` WebDriverManager webDriverManager; WebDriver Webdriver;

webDriverManager =WebDriverManager.chromedriver(); webDriverManager.setup(); webDriverManager.create(); Webdriver=webDriverManager.getWebDriver(); `

Every driver has the same WindowHandle and i can not switch from one to another via

webDriverManager.getWebDriver().switchTo().window(XXXXXXX);

I would like to manage all my open instances windows via a specific ID as provides from windowHandle ID.

Browser and version: Chrome version 125.0.6422.142

Operating system and architecture: Windows 10 x64

Selenium version: 4.19.1

WebDriverManager version: 5.8.0

**WebDriverManager call**: WebDriverManager.chromedriver(),create();

WebDriverManager traces:

2024-06-19T13:49:44.258+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 139ms] SelectorAttachment Registering jdk.internal.net.http.SocketTube$InternalReadPublisher$ReadEvent@13340a0f for 0 (false)
2024-06-19T13:49:44.258+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 140ms] SocketTube(1) read bytes: 122
2024-06-19T13:49:44.258+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 140ms] Http1AsyncReceiver(SocketTube(1)) Putting 122 bytes into the queue
2024-06-19T13:49:44.258+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 140ms] SocketTube(1) resuming read event
2024-06-19T13:49:44.258+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 140ms] SelectorAttachment Registering jdk.internal.net.http.SocketTube$InternalReadPublisher$ReadEvent@13340a0f for 1 (false)
2024-06-19T13:49:44.258+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 140ms] SocketTube(1) leaving read() loop after onNext:  Reading: [ops=1, demand=0, stopped=false], Writing: [ops=0, demand=1]
2024-06-19T13:49:44.258+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 140ms] HttpClientImpl(1) next timeout: 178953
2024-06-19T13:49:44.258+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 140ms] Http1AsyncReceiver(SocketTube(1)) Got 122 bytes for delegate jdk.internal.net.http.Http1Response$HeadersReader@96e01c2
2024-06-19T13:49:44.259+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 140ms] Http1AsyncReceiver(SocketTube(1)) downstream subscription demand is 1
2024-06-19T13:49:44.259+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 140ms] Http1AsyncReceiver(SocketTube(1)) Forwarding 122 bytes to delegate jdk.internal.net.http.Http1Response$HeadersReader@96e01c2
2024-06-19T13:49:44.259+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 140ms] Http1Response(id=4, PlainHttpConnection(SocketTube(1))) Sending 122/122 bytes to header parser
2024-06-19T13:49:44.259+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 140ms] HttpClientImpl(1) next expired: 0
2024-06-19T13:49:44.259+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 140ms] HttpClientImpl(1) Next deadline is 3000
2024-06-19T13:49:44.259+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 140ms] Http1Response(id=4, PlainHttpConnection(SocketTube(1))) Parsing headers completed. bytes=108
2024-06-19T13:49:44.259+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 141ms] Http1AsyncReceiver(SocketTube(1)) Unsubscribed jdk.internal.net.http.Http1Response$HeadersReader@96e01c2
2024-06-19T13:49:44.259+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 141ms] Http1Response(id=4, PlainHttpConnection(SocketTube(1))) Reading Headers: creating Response object; state is now READING_BODY
2024-06-19T13:49:44.259+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 141ms] Http1Exchange getResponseAsync completed successfully
2024-06-19T13:49:44.259+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 141ms] Http1Response(id=4, PlainHttpConnection(SocketTube(1))) readBody: return2Cache: true
2024-06-19T13:49:44.259+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 141ms] Http1Response(id=4, PlainHttpConnection(SocketTube(1))) Operation started: incrementing ref count for jdk.internal.net.http.HttpClientImpl@67ca8977(1)
2024-06-19T13:49:44.259+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 141ms] Http1AsyncReceiver(SocketTube(1)) Subscribed pending jdk.internal.net.http.Http1Response$BodyReader@4becef18/parser=jdk.internal.net.http.ResponseContent$FixedLengthBodyParser@499192fd queue.isEmpty: false
2024-06-19T13:49:44.259+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 141ms] Http1AsyncReceiver(SocketTube(1)) Delegate done: 14
2024-06-19T13:49:44.260+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 141ms] PlainHttpConnection(SocketTube(1))/ResponseContent/FixedLengthBodyParser length=14, onSubscribe: jdk.internal.net.http.Http1Response$Http1BodySubscriber
2024-06-19T13:49:44.260+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 141ms] Http1AsyncReceiver(SocketTube(1)) delegate is now jdk.internal.net.http.Http1Response$BodyReader@4becef18/parser=jdk.internal.net.http.ResponseContent$FixedLengthBodyParser@499192fd, demand=9223372036854775807, canRequestMore=false, queue.isEmpty=false
2024-06-19T13:49:44.260+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 141ms] Http1AsyncReceiver(SocketTube(1)) Got 14 bytes for delegate jdk.internal.net.http.Http1Response$BodyReader@4becef18/parser=jdk.internal.net.http.ResponseContent$FixedLengthBodyParser@499192fd
2024-06-19T13:49:44.260+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 141ms] Http1AsyncReceiver(SocketTube(1)) downstream subscription demand is 9223372036854775807
2024-06-19T13:49:44.260+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 141ms] Http1AsyncReceiver(SocketTube(1)) Forwarding 14 bytes to delegate jdk.internal.net.http.Http1Response$BodyReader@4becef18/parser=jdk.internal.net.http.ResponseContent$FixedLengthBodyParser@499192fd
2024-06-19T13:49:44.260+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 141ms] Http1Response(id=4, PlainHttpConnection(SocketTube(1))) Sending 14/122 bytes to body parser
2024-06-19T13:49:44.260+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 142ms] PlainHttpConnection(SocketTube(1))/ResponseContent/FixedLengthBodyParser Parser got 14 bytes (14 remaining / 14)
2024-06-19T13:49:44.260+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 142ms] PlainHttpConnection(SocketTube(1))/ResponseContent/FixedLengthBodyParser Parser got all expected bytes: completing
2024-06-19T13:49:44.260+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 142ms] Http1AsyncReceiver(SocketTube(1)) cleared
2024-06-19T13:49:44.260+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 142ms] Http1Response(id=4, PlainHttpConnection(SocketTube(1))) SocketTube(1): return to HTTP/1.1 pool
2024-06-19T13:49:44.260+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 142ms] ConnectionPool(1) registering CleanupTrigger(SocketTube(1))
2024-06-19T13:49:44.260+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 142ms] SocketTube(1) connecting flows
2024-06-19T13:49:44.260+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 142ms] SocketTube(1) read publisher got subscriber
2024-06-19T13:49:44.260+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 142ms] SocketTube(1) registering subscribe event
2024-06-19T13:49:44.260+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 142ms] SocketTube(1) leaving read.subscribe:  Reading: [ops=1, demand=0, stopped=false], Writing: [ops=0, demand=1]
2024-06-19T13:49:44.260+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 142ms] SocketTube(1) subscribed for writing
2024-06-19T13:49:44.260+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 142ms] SocketTube(1) subscribe event raised
2024-06-19T13:49:44.260+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 142ms] SocketTube(1) write: resetting demand to 0
2024-06-19T13:49:44.260+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 142ms] SocketTube(1) write: registering startSubscription event
2024-06-19T13:49:44.260+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 142ms] SocketTube(1) handling pending subscription for CleanupTrigger(SocketTube(1))
2024-06-19T13:49:44.260+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 142ms] Http1AsyncReceiver(SocketTube(1)) Http1TubeSubscriber: dropSubscription
2024-06-19T13:49:44.260+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 142ms] SocketTube(1) read demand reset to 0
2024-06-19T13:49:44.260+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 142ms] SocketTube(1) calling onSubscribe
2024-06-19T13:49:44.261+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 142ms] Http1Response(id=4, PlainHttpConnection(SocketTube(1))) Finished reading body: READING_BODY
2024-06-19T13:49:44.261+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 142ms] SocketTube(1) got some demand for reading
2024-06-19T13:49:44.261+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 142ms] SocketTube(1) resuming read event
2024-06-19T13:49:44.261+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 142ms] Http1Response(id=4, PlainHttpConnection(SocketTube(1))) Operation finished: decrementing ref count for jdk.internal.net.http.HttpClientImpl@67ca8977(1)
2024-06-19T13:49:44.261+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 142ms] SelectorAttachment Registering jdk.internal.net.http.SocketTube$InternalReadPublisher$ReadEvent@13340a0f for 1 (false)
2024-06-19T13:49:44.261+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 142ms] Http1AsyncReceiver(SocketTube(1)) Delegate done: 0
2024-06-19T13:49:44.261+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 142ms] SocketTube(1) leaving request(1):  Reading: [ops=1, demand=1, stopped=false], Writing: [ops=0, demand=0]
2024-06-19T13:49:44.261+03:00 DEBUG 28364 --- [seliniumService] [92cf6 to remote] o.o.s.remote.http.jdk.JdkHttpClient      : Ending request (POST) /session/af1b4d88b28036565506228b66792cf6/url in 1,051ms
2024-06-19T13:49:44.261+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 142ms] Http1AsyncReceiver(SocketTube(1)) Got 0 bytes for delegate null
2024-06-19T13:49:44.261+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 142ms] SocketTube(1) onSubscribe called
2024-06-19T13:49:44.261+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 142ms] SocketTube(1) pending subscriber subscribed
2024-06-19T13:49:44.261+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 142ms] HttpClientImpl(1) next timeout: 0
2024-06-19T13:49:44.261+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 143ms] HttpClientImpl(1) next expired: 1199739
2024-06-19T13:49:44.261+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 143ms] HttpClientImpl(1) Next deadline is 3000
2024-06-19T13:49:44.261+03:00 DEBUG 28364 --- [seliniumService] [92cf6 to remote] o.o.s.r.codec.w3c.W3CHttpResponseCodec   : Decoding response. Response code was: 200 and content: {"value":null}
2024-06-19T13:49:44.261+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 143ms] SocketTube(1) write: starting subscription
2024-06-19T13:49:44.261+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 143ms] SocketTube(1) write: offloading requestMore
2024-06-19T13:49:44.261+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 143ms] HttpClientImpl(1) next timeout: 0
2024-06-19T13:49:44.261+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 143ms] SocketTube(1) write: requesting more...
2024-06-19T13:49:44.261+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 143ms] SocketTube(1) leaving requestMore:  Reading: [ops=1, demand=1, stopped=false], Writing: [ops=0, demand=1]
2024-06-19T13:49:44.261+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 143ms] HttpClientImpl(1) next expired: 1199739
2024-06-19T13:49:44.261+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 143ms] HttpClientImpl(1) Next deadline is 3000
2024-06-19T13:49:44.262+03:00 DEBUG 28364 --- [seliniumService] [92cf6 to remote] o.o.selenium.remote.RemoteWebDriver      : Executed: get (Response: SessionID: af1b4d88b28036565506228b66792cf6, State: success, Value: null)
2024-06-19T13:49:44.262+03:00 DEBUG 28364 --- [seliniumService] [92cf6 to remote] o.o.selenium.remote.RemoteWebDriver      : Executing: getCurrentUrl [af1b4d88b28036565506228b66792cf6, getCurrentUrl {}]
2024-06-19T13:49:44.262+03:00 DEBUG 28364 --- [seliniumService] [92cf6 to remote] o.o.s.remote.http.jdk.JdkHttpClient      : Executing request: (GET) /session/af1b4d88b28036565506228b66792cf6/url
2024-06-19T13:49:44.273+03:00 DEBUG 28364 --- [seliniumService] [92cf6 to remote] o.o.s.r.codec.w3c.W3CHttpResponseCodec   : Decoding response. Response code was: 200 and content: {"value":"https://www.google.com/"}
2024-06-19T13:49:44.273+03:00 DEBUG 28364 --- [seliniumService] [92cf6 to remote] o.o.selenium.remote.RemoteWebDriver      : Executed: getCurrentUrl (Response: SessionID: af1b4d88b28036565506228b66792cf6, State: success, Value: https://www.google.com/)
window handle: https://www.google.com/
port : 4444
2024-06-19T13:49:44.275+03:00 DEBUG 28364 --- [seliniumService] [92cf6 to remote] o.o.selenium.remote.RemoteWebDriver      : Executing: getCurrentWindowHandle [af1b4d88b28036565506228b66792cf6, getCurrentWindowHandle {}]
2024-06-19T13:49:44.275+03:00 DEBUG 28364 --- [seliniumService] [92cf6 to remote] o.o.s.remote.http.jdk.JdkHttpClient      : Executing request: (GET) /session/af1b4d88b28036565506228b66792cf6/window
2024-06-19T13:49:44.276+03:00 DEBUG 28364 --- [seliniumService] [92cf6 to remote] jdk.internal.httpclient.debug            : [Forwarding getCurrentWindowHandle on session af1b4d88b28036565506228b66792cf6 to remote] [2s 157ms] HttpClientImpl(1) ClientImpl (async) send http://localhost:41414/session/af1b4d88b28036565506228b66792cf6/window GET
2024-06-19T13:49:44.276+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 158ms] Exchange establishing exchange for http://localhost:41414/session/af1b4d88b28036565506228b66792cf6/window GET,
     proxy=null
2024-06-19T13:49:44.276+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 158ms] HttpClientImpl(1) next timeout: 180000
2024-06-19T13:49:44.276+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 158ms] Http2ClientImpl not found in connection pool
2024-06-19T13:49:44.276+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 158ms] ExchangeImpl get: Trying to get HTTP/2 connection
2024-06-19T13:49:44.276+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 158ms] HttpClientImpl(1) next expired: 1199724
2024-06-19T13:49:44.276+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 158ms] ExchangeImpl handling HTTP/2 connection creation result
2024-06-19T13:49:44.276+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 158ms] HttpClientImpl(1) Next deadline is 3000
2024-06-19T13:49:44.276+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 158ms] ExchangeImpl new Http1Exchange, try to upgrade
2024-06-19T13:49:44.276+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 158ms] HttpConnection(SocketTube(?)) SocketTube(1): plain connection retrieved from HTTP/1.1 pool
2024-06-19T13:49:44.276+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 158ms] Exchange checkFor407: all clear
2024-06-19T13:49:44.276+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 158ms] Http1Exchange Sending headers only
2024-06-19T13:49:44.276+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 158ms] Http1AsyncReceiver(SocketTube(1)) Subscribed pending jdk.internal.net.http.Http1Response$HeadersReader@3e49af0c queue.isEmpty: true
2024-06-19T13:49:44.276+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 158ms] Http1AsyncReceiver(SocketTube(1)) delegate is now jdk.internal.net.http.Http1Response$HeadersReader@3e49af0c, demand=1, canRequestMore=true, queue.isEmpty=true
2024-06-19T13:49:44.276+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 158ms] Http1AsyncReceiver(SocketTube(1)) downstream subscription demand is 1
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 158ms] Http1AsyncReceiver(SocketTube(1)) checkRequestMore: canRequestMore=true, hasDemand=true
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 158ms] Http1AsyncReceiver(SocketTube(1)) downstream subscription demand is 1
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 158ms] Http1AsyncReceiver(SocketTube(1)) checkRequestMore: canRequestMore=true, hasDemand=true
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 158ms] Http1Exchange response created in advance
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 158ms] Http1Exchange SocketTube(1) connecting flows
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 158ms] SocketTube(1) connecting flows
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 158ms] SocketTube(1) read publisher got subscriber
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 158ms] SocketTube(1) registering subscribe event
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 158ms] SocketTube(1) leaving read.subscribe:  Reading: [ops=1, demand=1, stopped=false], Writing: [ops=0, demand=1]
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 159ms] SocketTube(1) subscribe event raised
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 159ms] Http1Publisher(SocketTube(1)) got subscriber: SocketTube(1)
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 159ms] SocketTube(1) subscribed for writing
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 159ms] SocketTube(1) handling pending subscription for jdk.internal.net.http.Http1AsyncReceiver$Http1TubeSubscriber@afc795f
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 159ms] SocketTube(1) write: resetting demand to 0
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 159ms] SocketTube(1) read demand reset to 0
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 159ms] SocketTube(1) write: registering startSubscription event
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 159ms] SocketTube(1) calling onSubscribe
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 159ms] Http1Exchange requestAction.headers
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 159ms] Http1AsyncReceiver(SocketTube(1)) Received onSubscribed from upstream
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 159ms] SocketTube(1) onSubscribe called
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 159ms] SocketTube(1) pending subscriber subscribed
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-2] jdk.internal.httpclient.debug            : [JdkHttpClient-0-2] [2s 159ms] Http1AsyncReceiver(SocketTube(1)) downstream subscription demand is 1
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-2] jdk.internal.httpclient.debug            : [JdkHttpClient-0-2] [2s 159ms] Http1AsyncReceiver(SocketTube(1)) checkRequestMore: canRequestMore=true, hasDemand=true
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 159ms] HttpClientImpl(1) next timeout: 179999
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-2] jdk.internal.httpclient.debug            : [JdkHttpClient-0-2] [2s 159ms] Http1AsyncReceiver(SocketTube(1)) Http1TubeSubscriber: requesting one more from upstream
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 159ms] HttpClientImpl(1) next expired: 0
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-2] jdk.internal.httpclient.debug            : [JdkHttpClient-0-2] [2s 159ms] SocketTube(1) got some demand for reading
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 159ms] Http1Exchange setting outgoing with headers
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-2] jdk.internal.httpclient.debug            : [JdkHttpClient-0-2] [2s 159ms] SocketTube(1) resuming read event
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 159ms] HttpClientImpl(1) Next deadline is 3000
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 159ms] Http1Exchange appending to outgoing DataPair [data=[java.nio.HeapByteBuffer[pos=0 lim=332 cap=332]], throwable=null]
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-2] jdk.internal.httpclient.debug            : [JdkHttpClient-0-2] [2s 159ms] SocketTube(1) leaving request(1):  Reading: [ops=1, demand=1, stopped=false], Writing: [ops=0, demand=0]
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 159ms] Http1Publisher(SocketTube(1)) WriteTask
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 159ms] SelectorAttachment Registering jdk.internal.net.http.SocketTube$InternalReadPublisher$ReadEvent@13340a0f for 1 (false)
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 159ms] Http1Publisher(SocketTube(1)) hasOutgoing = true
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 159ms] SocketTube(1) write: starting subscription
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 159ms] SocketTube(1) write: offloading requestMore
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 159ms] SocketTube(1) write: requesting more...
2024-06-19T13:49:44.277+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 159ms] HttpClientImpl(1) next timeout: 179999
2024-06-19T13:49:44.278+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 159ms] HttpClientImpl(1) next expired: 0
2024-06-19T13:49:44.278+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 159ms] Http1Publisher(SocketTube(1)) subscription request(1), demand=1
2024-06-19T13:49:44.278+03:00 DEBUG 28364 --- [seliniumService] [kHttpClient-0-0] jdk.internal.httpclient.debug            : [JdkHttpClient-0-0] [2s 159ms] Http1Publisher(SocketTube(1)) WriteTask
2024-06-19T13:49:44.278+03:00 DEBUG 28364 --- [seliniumService] [SelectorManager] jdk.internal.httpclient.debug            : [HttpClient-1-SelectorManager] [2s 159ms] HttpClientImpl(1) Next deadline is 3000
2024-06-19T13:49:44.281+03:00 DEBUG 28364 --- [seliniumService] [92cf6 to remote] o.o.selenium.remote.RemoteWebDriver      : Executed: getCurrentWindowHandle (Response: SessionID: af1b4d88b28036565506228b66792cf6, State: success, Value: F45A84C2502BD3515146A29EA3A24368)
2024-06-19T13:49:44.281+03:00 TRACE 28364 --- [seliniumService] [  restartedMain] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'org.springframework.transaction.config.internalTransactionAdvisor'
2024-06-19T13:49:44.282+03:00 TRACE 28364 --- [seliniumService] [  restartedMain] o.s.b.f.s.DefaultListableBeanFactory     : Finished creating instance of bean 'seliniumServer'
bonigarcia commented 3 months ago

The WebDriver objects created by WebDriverManager are regular WebDriver instances. So you should be able to use switchTo() as usual. Here you have several working examples:

https://github.com/bonigarcia/selenium-webdriver-java/tree/master/selenium-webdriver-junit5/src/test/java/io/github/bonigarcia/webdriver/jupiter/ch04/targets

inikolao commented 2 months ago

what if i would like to develop a "hybrid" solution where i will have a WebDriverManager only for configuration and setup() and have only an istance of webdriver. In that case i have an istance of chome with window ID A. What if i would like to have a second lets say "tab" or window with the same webDriver and i would like to use switchTo(). Then we have a problem as the ID remains A and thats an issue. Please investicate it further.