selenium: [π Bug]: Remote login with basic authentication blocks jobs in the Grid
What happened?
The test opens a Chrome browser and needs to log in with basic authentication. At that specific moment the error comes in. I cannot determine if this is a chromedriver issue.
How can we reproduce the issue?
// Login code for basic authentication
Platform remotePlatform = Platform.getCurrent();
switch (getProperty("platform"))
{
case "WINDOWS":
remotePlatform = Platform.WINDOWS;
break;
default:
remotePlatform = Platform.WINDOWS;
}
String seleniumGridHub = getProperty("seleniumGridHub");
AtomicReference<DevTools> devToolsAtomicReference = new AtomicReference<>();
driver = RemoteWebDriver.builder().augmentUsing(new Augmenter().addDriverAugmentation("chrome", HasAuthentication.class, (caps, exec) -> (whenThisMatches, useTheseCredentials) ->
{
devToolsAtomicReference.get().createSessionIfThereIsNotOne();
devToolsAtomicReference.get().getDomains().network().addAuthHandler(whenThisMatches, useTheseCredentials);
})).oneOf(chromeOptions).address(seleniumGridHub).build();
devToolsAtomicReference.set(((HasDevTools) driver).getDevTools());
LOG.info("Login in as Administrator");
String userName = getProperty("username");
String password = getProperty("password");
// Register the driver with the given credentials.
((HasAuthentication) s_driver).register(UsernameAndPassword.of(userName, password));
// Load the application url
String currentURL = s_driver.getCurrentUrl();
s_driver.get(currentURL); // <<<< ---- The error happens at this line
Relevant log output
Oct 18, 2023 7:55:49 AM org.openqa.selenium.remote.http.WebSocket$Listener onError
WARNING: Unexpected frame CONTINUATION (fin=true)
java.net.ProtocolException
at java.net.http/jdk.internal.net.http.websocket.WebSocketImpl$ReceiveTask.processError(WebSocketImpl.java:487)
at java.net.http/jdk.internal.net.http.websocket.WebSocketImpl$ReceiveTask.run(WebSocketImpl.java:454)
at java.net.http/jdk.internal.net.http.common.SequentialScheduler$CompleteRestartableTask.run(SequentialScheduler.java:147)
at java.net.http/jdk.internal.net.http.common.SequentialScheduler$SchedulableTask.run(SequentialScheduler.java:198)
at java.net.http/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:271)
at java.net.http/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:224)
at java.net.http/jdk.internal.net.http.websocket.WebSocketImpl.trySetState(WebSocketImpl.java:837)
at java.net.http/jdk.internal.net.http.websocket.WebSocketImpl.signalError(WebSocketImpl.java:714)
at java.net.http/jdk.internal.net.http.websocket.WebSocketImpl$SignallingMessageConsumer.onError(WebSocketImpl.java:825)
at java.net.http/jdk.internal.net.http.websocket.TransportImpl$ReceiveTask.run(TransportImpl.java:671)
at java.net.http/jdk.internal.net.http.common.SequentialScheduler$CompleteRestartableTask.run(SequentialScheduler.java:147)
at java.net.http/jdk.internal.net.http.common.SequentialScheduler$SchedulableTask.run(SequentialScheduler.java:198)
at java.net.http/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:271)
at java.net.http/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:224)
at java.net.http/jdk.internal.net.http.websocket.TransportImpl$ReadEvent.handle(TransportImpl.java:762)
at java.net.http/jdk.internal.net.http.RawChannelTube$ReadSubscriber.checkEvents(RawChannelTube.java:174)
at java.net.http/jdk.internal.net.http.RawChannelTube$ReadSubscriber.onNext(RawChannelTube.java:204)
at java.net.http/jdk.internal.net.http.RawChannelTube$ReadSubscriber.onNext(RawChannelTube.java:157)
at java.net.http/jdk.internal.net.http.SocketTube$InternalReadPublisher$InternalReadSubscription.read(SocketTube.java:844)
at java.net.http/jdk.internal.net.http.SocketTube$SocketFlowTask.run(SocketTube.java:175)
at java.net.http/jdk.internal.net.http.common.SequentialScheduler$SchedulableTask.run(SequentialScheduler.java:198)
at java.net.http/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:271)
at java.net.http/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:224)
at java.net.http/jdk.internal.net.http.SocketTube$InternalReadPublisher$InternalReadSubscription.signalReadable(SocketTube.java:763)
at java.net.http/jdk.internal.net.http.SocketTube$InternalReadPublisher$ReadEvent.signalEvent(SocketTube.java:941)
at java.net.http/jdk.internal.net.http.SocketTube$SocketFlowEvent.handle(SocketTube.java:245)
at java.net.http/jdk.internal.net.http.HttpClientImpl$SelectorManager.handleEvent(HttpClientImpl.java:957)
at java.net.http/jdk.internal.net.http.HttpClientImpl$SelectorManager.lambda$run$3(HttpClientImpl.java:912)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
at java.net.http/jdk.internal.net.http.HttpClientImpl$SelectorManager.run(HttpClientImpl.java:912)
Caused by: jdk.internal.net.http.websocket.FailWebSocketException: Unexpected frame CONTINUATION (fin=true)
at java.net.http/jdk.internal.net.http.websocket.MessageDecoder.opcode(MessageDecoder.java:133)
at java.net.http/jdk.internal.net.http.websocket.Frame$Reader.readFrame(Frame.java:391)
at java.net.http/jdk.internal.net.http.websocket.TransportImpl$ReceiveTask.run(TransportImpl.java:665)
... 20 more
Oct 18, 2023 7:55:59 AM org.openqa.selenium.devtools.Connection$Listener lambda$onText$0
WARNING: Unable to process: {"method":"Fetch.requestPaused","params":{"requestId":"interception-job-2.0","request":{"url":"http://nlbavwebui01.infor.com:24312/webui/gwtui/gwtui.nocache.js","method":"GET","headers":{"Accept":"*/*","Cookie":"JSESSIONID=B70DB6E511E48A25BF025A7D7DA5B91D","Referer":"http://nlbavwebui01.infor.com:24312/webui/servlet/admin","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/118.0.0.0 Safari/537.36"},"initialPriority":"High","referrerPolicy":"strict-origin-when-cross-origin"},"frameId":"3022173EF8413AB9614DCF4830E2F348","resourceType":"Script"},"sessionId":"AA15CF1C62EDCA20B0F1A01BB6D9D5DC"}
org.openqa.selenium.TimeoutException: java.util.concurrent.TimeoutException
Build info: version: '4.14.1', revision: '03f8ede370'
System info: os.name: 'Windows 11', os.arch: 'amd64', os.version: '10.0', java.version: '11.0.20.1'
Driver info: driver.version: unknown
at org.openqa.selenium.devtools.Connection.sendAndWait(Connection.java:183)
at org.openqa.selenium.devtools.DevTools.send(DevTools.java:89)
at org.openqa.selenium.devtools.idealized.Network.lambda$prepareToInterceptTraffic$5(Network.java:258)
at org.openqa.selenium.devtools.Connection.lambda$handle$4(Connection.java:330)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
at java.base/java.util.stream.ReferencePipeline$11$1.accept(ReferencePipeline.java:442)
at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1621)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
at org.openqa.selenium.devtools.Connection.handle(Connection.java:296)
at org.openqa.selenium.devtools.Connection$Listener.lambda$onText$0(Connection.java:224)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.util.concurrent.TimeoutException
at java.base/java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1886)
at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2021)
at org.openqa.selenium.devtools.Connection.sendAndWait(Connection.java:172)
... 18 more
Exception in thread "CDP Connection" org.openqa.selenium.devtools.DevToolsException: java.util.concurrent.TimeoutException
Build info: version: '4.14.1', revision: '03f8ede370'
System info: os.name: 'Windows 11', os.arch: 'amd64', os.version: '10.0', java.version: '11.0.20.1'
Driver info: driver.version: unknown
at org.openqa.selenium.devtools.Connection$Listener.lambda$onText$0(Connection.java:227)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.openqa.selenium.TimeoutException: java.util.concurrent.TimeoutException
Build info: version: '4.14.1', revision: '03f8ede370'
System info: os.name: 'Windows 11', os.arch: 'amd64', os.version: '10.0', java.version: '11.0.20.1'
Driver info: driver.version: unknown
at org.openqa.selenium.devtools.Connection.sendAndWait(Connection.java:183)
at org.openqa.selenium.devtools.DevTools.send(DevTools.java:89)
at org.openqa.selenium.devtools.idealized.Network.lambda$prepareToInterceptTraffic$5(Network.java:258)
at org.openqa.selenium.devtools.Connection.lambda$handle$4(Connection.java:330)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
at java.base/java.util.stream.ReferencePipeline$11$1.accept(ReferencePipeline.java:442)
at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1621)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
at org.openqa.selenium.devtools.Connection.handle(Connection.java:296)
at org.openqa.selenium.devtools.Connection$Listener.lambda$onText$0(Connection.java:224)
... 3 more
Caused by: java.util.concurrent.TimeoutException
at java.base/java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1886)
at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2021)
at org.openqa.selenium.devtools.Connection.sendAndWait(Connection.java:172)
... 18 more
Operating System
Windows Server 2022 Standard
Selenium version
Selenium Java 4.14.1
What are the browser(s) and version(s) where you see this issue?
Chrome 118.0.5993.71 (Official Build) (64-bit)
What are the browser driver(s) and version(s) where you see this issue?
Comes with Selenium Grid
Are you using Selenium Grid?
Selenium Grid 4.14.1
About this issue
- Original URL
- State: closed
- Created 8 months ago
- Comments: 23 (17 by maintainers)
Commits related to this issue
- [grid] fixed processing continuation frames #12962 — committed to SeleniumHQ/selenium by joerg1985 8 months ago
Thatβs great. Thank you! Will try the fix out to see if it solves the issue at hand.
@MarcJagtInfor thanks for reporting the issue, it has been fixed now.
Iβm looking for the minimum reproducible example so that it is easy to pinpoint the problem. Remove code that isnβt needed in case it did something weird to cause the problem.
For
Unexpected frame CONTINUATION (fin=true)I think that might help https://github.com/SeleniumHQ/selenium/issues/11408#issuecomment-1345401948The timeout looks similar to what I already reported https://github.com/SeleniumHQ/selenium/issues/12689 Is there any chance that You are using dynamic grid with docker?
Thank you for the details. If the test passes on IDE and does not pass otherwise, it seems unlikely that it is a Selenium bug. Did you see this error with other versions of the browser?