Skip to content

Cannot run playwright tests on Selenium Grid. #18892

Open
@dimsamaras

Description

@dimsamaras

I have created a simple .net 6 console app to check whether it is possible to use Selenium Grid instead of Moon in order to have a svc managing the Browsers.

this is my dummy code Program.cs:

using Microsoft.Playwright;

using var playwright = await Playwright.CreateAsync();
await using var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions { Channel = "chrome" });
var ctx = await browser.NewContextAsync(new BrowserNewContextOptions()
{
    IgnoreHTTPSErrors = true
});

var page = await ctx.NewPageAsync();

var url = "https://playwright.dev/dotnet/docs/intro";
var response = await page.GotoAsync(url, new PageGotoOptions
    {
        WaitUntil = WaitUntilState.DOMContentLoaded
    });

Console.WriteLine(response.Ok);

await page.ScreenshotAsync(new PageScreenshotOptions
{
    Path = "screenshot.png",
    FullPage = true
});

Console.WriteLine("Screenshot ok");

I have set the necessary env variables SELENIUM_REMOTE_URL

---> THE PROBLEM <---

The screenshot for full page times out.

If i remove the FullPage = true the screenshot succeeds.

Similarly, if i do a page.clickAsync() action it times out,

page.CloseAsync() works.

navigating to different pages with page.GoToAsync calls again works without issue.

It looks like some actions just do not work.

I am attaching the errors i get from the hub and the chrome pod.

  • SELENIUM HUB:
15:26:09.260 INFO [Node.<init>] - Binding additional locator mechanisms: name, id, relative
15:26:09.461 INFO [GridModel.setAvailability] - Switching Node ce697328-ea35-490b-94b5-e1afa3e0a67e (uri: http://10.244.1.71:5555/ ) from DOWN to UP
15:26:09.461 INFO [LocalDistributor.add] - Added node ce697328-ea35-490b-94b5-e1afa3e0a67e at http://10.244.1.71:5555/ . Health check every 120s
15:33:17.688 INFO [LocalDistributor.newSession] - Session request received by the Distributor:
[Capabilities {browserName: chrome, goog:chromeOptions: {args: [--disable-field-trial-config, --disable-background-networ..., --enable-features=NetworkSe..., --disable-background-timer-..., --disable-backgrounding-occ..., --disable-back-forward-cache, --disable-breakpad, --disable-client-side-phish..., --disable-component-extensi..., --disable-default-apps, --disable-dev-shm-usage, --disable-extensions, --disable-features=Improved..., --allow-pre-commit-input, --disable-hang-monitor, --disable-ipc-flooding-prot..., --disable-popup-blocking, --disable-prompt-on-repost, --disable-renderer-backgrou..., --disable-sync, --force-color-profile=srgb, --metrics-recording-only, --no-first-run, --enable-automation, --password-store=basic, --use-mock-keychain, --no-service-autorun, --export-tagged-pdf, --headless, --hide-scrollbars, --mute-audio, --blink-settings=primaryHov..., --no-sandbox, --remote-debugging-port=0]}}]
15:33:18.650 INFO [LocalDistributor.newSession] - Session created by the Distributor. Id: 37972c369578e697a6be9360403fd256
Caps: Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 106.0.5249.119, chrome: {chromedriverVersion: 106.0.5249.61 (511755355844..., userDataDir: /tmp/.com.google.Chrome.sUT3Fb}, goog:chromeOptions: {debuggerAddress: localhost:42649}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: LINUX, proxy: {}, se:bidiEnabled: false, se:cdp: ws://selenium-hub:4444/sess..., se:cdpVersion: 106.0.5249.119, se:vnc: ws://selenium-hub:4444/sess..., se:vncEnabled: true, se:vncLocalAddress: ws://10.244.1.71:7900, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:virtualAuthenticators: true}
15:33:20.031 WARN [DefaultChannelPipeline.onUnhandledInboundException] - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
org.openqa.selenium.WebDriverException: java.lang.IllegalArgumentException: statusCode
Build info: version: '4.6.0', revision: '79f1c02ae20'
System info: [os.name](http://os.name/) : 'Linux', os.arch: 'amd64', os.version: '5.4.0-1091-azure', java.version: '11.0.16'
Driver info: driver.version: unknown
at org.openqa.selenium.remote.http.jdk.JdkHttpClient5.send(JdkHttpClient.java:232) at org.openqa.selenium.netty.server.WebSocketMessageHandler.lambda5.send(JdkHttpClient.java:232)atorg.openqa.selenium.netty.server.WebSocketMessageHandler.lambdachannelRead0$0(WebSocketMessageHandler.java:47)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:566)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.IllegalArgumentException: statusCode
at java.net.http/jdk.internal.net.http.websocket.WebSocketImpl.sendClose(WebSocketImpl.java:301)
at org.openqa.selenium.remote.http.jdk.JdkHttpClient5.lambda5.lambdasend$2(JdkHttpClient.java:215)
at org.openqa.selenium.remote.http.jdk.JdkHttpClient5.send(JdkHttpClient.java:222) ... 9 more 15:33:20.197 INFO [GridModel.release] - Releasing slot for session id 37972c369578e697a6be9360403fd256 15:33:20.197 INFO [LocalSessionMap.lambda5.send(JdkHttpClient.java:222)...9more15:33:20.197INFO[GridModel.release]−Releasingslotforsessionid37972c369578e697a6be9360403fd25615:33:20.197INFO[LocalSessionMap.lambdanew0] - Deleted session from local Session Map, Id: 37972c369578e697a6be9360403fd256 15:33:48.408 INFO [LocalDistributor.newSession] - Session request received by the Distributor: [Capabilities {browserName: chrome, goog:chromeOptions: {args: [--disable-field-trial-config, --disable-background-networ..., --enable-features=NetworkSe..., --disable-background-timer-..., --disable-backgrounding-occ..., --disable-back-forward-cache, --disable-breakpad, --disable-client-side-phish..., --disable-component-extensi..., --disable-default-apps, --disable-dev-shm-usage, --disable-extensions, --disable-features=Improved..., --allow-pre-commit-input, --disable-hang-monitor, --disable-ipc-flooding-prot..., --disable-popup-blocking, --disable-prompt-on-repost, --disable-renderer-backgrou..., --disable-sync, --force-color-profile=srgb, --metrics-recording-only, --no-first-run, --enable-automation, --password-store=basic, --use-mock-keychain, --no-service-autorun, --export-tagged-pdf, --headless, --hide-scrollbars, --mute-audio, --blink-settings=primaryHov..., --no-sandbox, --remote-debugging-port=0]}}] 15:33:48.660 INFO [LocalDistributor.newSession] - Session created by the Distributor. Id: 871135c74f65c9368403e2c5b587c386 Caps: Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 106.0.5249.119, chrome: {chromedriverVersion: 106.0.5249.61 (511755355844..., userDataDir: /tmp/.com.google.Chrome.bMGdRp}, goog:chromeOptions: {debuggerAddress: localhost:45765}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: LINUX, proxy: {}, se:bidiEnabled: false, se:cdp: ws://selenium-hub:4444/sess..., se:cdpVersion: 106.0.5249.119, se:vnc: ws://selenium-hub:4444/sess..., se:vncEnabled: true, se:vncLocalAddress: ws://10.244.1.71:7900, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:virtualAuthenticators: true} 15:33:49.590 WARN [ProxyWebsocketsIntoGridForwardingListener.onError] - Error proxying websocket command
java.net.ProtocolException
at java.net.http/jdk.internal.net.http.websocket.WebSocketImplReceiveTask.processError(WebSocketImpl.java:487) at java.net.http/jdk.internal.net.http.websocket.WebSocketImplReceiveTask.processError(WebSocketImpl.java:487)atjava.net.http/jdk.internal.net.http.websocket.WebSocketImplReceiveTask.run(WebSocketImpl.java:454)
at java.net.http/jdk.internal.net.http.common.SequentialSchedulerCompleteRestartableTask.run(SequentialScheduler.java:147) at java.net.http/jdk.internal.net.http.common.SequentialSchedulerCompleteRestartableTask.run(SequentialScheduler.java:147)atjava.net.http/jdk.internal.net.http.common.SequentialSchedulerSchedulableTask.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.WebSocketImplSignallingMessageConsumer.onError(WebSocketImpl.java:825) at java.net.http/jdk.internal.net.http.websocket.TransportImplSignallingMessageConsumer.onError(WebSocketImpl.java:825)atjava.net.http/jdk.internal.net.http.websocket.TransportImplReceiveTask.run(TransportImpl.java:671)
at java.net.http/jdk.internal.net.http.common.SequentialSchedulerCompleteRestartableTask.run(SequentialScheduler.java:147) at java.net.http/jdk.internal.net.http.common.SequentialSchedulerCompleteRestartableTask.run(SequentialScheduler.java:147)atjava.net.http/jdk.internal.net.http.common.SequentialSchedulerSchedulableTask.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.TransportImplReadEvent.handle(TransportImpl.java:762) at java.net.http/jdk.internal.net.http.RawChannelTubeReadEvent.handle(TransportImpl.java:762)atjava.net.http/jdk.internal.net.http.RawChannelTubeReadSubscriber.checkEvents(RawChannelTube.java:174)
at java.net.http/jdk.internal.net.http.RawChannelTubeReadSubscriber.onNext(RawChannelTube.java:204) at java.net.http/jdk.internal.net.http.RawChannelTubeReadSubscriber.onNext(RawChannelTube.java:204)atjava.net.http/jdk.internal.net.http.RawChannelTubeReadSubscriber.onNext(RawChannelTube.java:157)
at java.net.http/jdk.internal.net.http.SocketTubeInternalReadPublisherInternalReadPublisherInternalReadSubscription.read(SocketTube.java:844)
at java.net.http/jdk.internal.net.http.SocketTubeSocketFlowTask.run(SocketTube.java:175) at java.net.http/jdk.internal.net.http.common.SequentialSchedulerSocketFlowTask.run(SocketTube.java:175)atjava.net.http/jdk.internal.net.http.common.SequentialSchedulerSchedulableTask.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.SocketTubeInternalReadPublisherInternalReadPublisherInternalReadSubscription.signalReadable(SocketTube.java:763)
at java.net.http/jdk.internal.net.http.SocketTubeInternalReadPublisherInternalReadPublisherReadEvent.signalEvent(SocketTube.java:941)
at java.net.http/jdk.internal.net.http.SocketTubeSocketFlowEvent.handle(SocketTube.java:245) at java.net.http/jdk.internal.net.http.HttpClientImplSocketFlowEvent.handle(SocketTube.java:245)atjava.net.http/jdk.internal.net.http.HttpClientImplSelectorManager.handleEvent(HttpClientImpl.java:957)
at java.net.http/jdk.internal.net.http.HttpClientImplSelectorManager.lambdaSelectorManager.lambdarun3(HttpClientImpl.java:912) at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) at java.net.http/jdk.internal.net.http.HttpClientImpl3(HttpClientImpl.java:912)atjava.base/java.util.ArrayList.forEach(ArrayList.java:1541)atjava.net.http/jdk.internal.net.http.HttpClientImplSelectorManager.run(HttpClientImpl.java:912)
Caused by: jdk.internal.net.http.websocket.FailWebSocketException: Unexpected frame CONTINUATION (fin=false)
at java.net.http/jdk.internal.net.http.websocket.MessageDecoder.opcode(MessageDecoder.java:133)
at java.net.http/jdk.internal.net.http.websocket.FrameReader.readFrame(Frame.java:391) at java.net.http/jdk.internal.net.http.websocket.TransportImplReader.readFrame(Frame.java:391)atjava.net.http/jdk.internal.net.http.websocket.TransportImplReceiveTask.run(TransportImpl.java:665)
... 20 more
15:34:19.584 WARN [DefaultChannelPipeline.onUnhandledInboundException] - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
org.openqa.selenium.WebDriverException: java.io.IOException: Output closed
Build info: version: '4.6.0', revision: '79f1c02ae20'
System info: [os.name](http://os.name/) : 'Linux', os.arch: 'amd64', os.version: '5.4.0-1091-azure', java.version: '11.0.16'
Driver info: driver.version: unknown
at org.openqa.selenium.remote.http.jdk.JdkHttpClient5.send(JdkHttpClient.java:232) at org.openqa.selenium.netty.server.WebSocketMessageHandler.lambda5.send(JdkHttpClient.java:232)atorg.openqa.selenium.netty.server.WebSocketMessageHandler.lambdachannelRead0$0(WebSocketMessageHandler.java:47)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:566)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: java.io.IOException: Output closed at java.net.http/jdk.internal.net.http.websocket.MessageEncoder.encodeText(MessageEncoder.java:136) at java.net.http/jdk.internal.net.http.websocket.TransportImpl2.run(ThreadExecutorMap.java:74)atio.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)atjava.base/java.lang.Thread.run(Thread.java:829)Causedby:java.io.IOException:Outputclosedatjava.net.http/jdk.internal.net.http.websocket.MessageEncoder.encodeText(MessageEncoder.java:136)atjava.net.http/jdk.internal.net.http.websocket.TransportImplSendTask1.onText(TransportImpl.java:366) at java.net.http/jdk.internal.net.http.websocket.TransportImpl1.onText(TransportImpl.java:366)atjava.net.http/jdk.internal.net.http.websocket.TransportImplSendTask1.onText(TransportImpl.java:357) at java.net.http/jdk.internal.net.http.websocket.MessageQueue.peek(MessageQueue.java:223) at java.net.http/jdk.internal.net.http.websocket.TransportImpl1.onText(TransportImpl.java:357)atjava.net.http/jdk.internal.net.http.websocket.MessageQueue.peek(MessageQueue.java:223)atjava.net.http/jdk.internal.net.http.websocket.TransportImplSendTask.run(TransportImpl.java:545)
at java.net.http/jdk.internal.net.http.common.SequentialSchedulerCompleteRestartableTask.run(SequentialScheduler.java:147) at java.net.http/jdk.internal.net.http.common.SequentialSchedulerCompleteRestartableTask.run(SequentialScheduler.java:147)atjava.net.http/jdk.internal.net.http.common.SequentialSchedulerSchedulableTask.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.sendText(TransportImpl.java:149)
at java.net.http/jdk.internal.net.http.websocket.WebSocketImpl.sendText(WebSocketImpl.java:184)
at org.openqa.selenium.remote.http.jdk.JdkHttpClient5.lambda5.lambdasend$1(JdkHttpClient.java:211)
at org.openqa.selenium.remote.http.jdk.JdkHttpClient$5.send(JdkHttpClient.java:222)
... 9 more
15:34:19.585 WARN [DefaultChannelPipeline.onUnhandledInboundException] - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
org.openqa.selenium.WebDriverException: java.io.IOException: Output closed
Build info: version: '4.6.0', revision: '79f1c02ae20'
System info: [os.name](http://os.name/) : 'Linux', os.arch: 'amd64', os.version: '5.4.0-1091-azure', java.version: '11.0.16'
Driver info: driver.version: unknown
at org.openqa.selenium.remote.http.jdk.JdkHttpClient5.send(JdkHttpClient.java:232) at org.openqa.selenium.netty.server.WebSocketMessageHandler.lambda5.send(JdkHttpClient.java:232)atorg.openqa.selenium.netty.server.WebSocketMessageHandler.lambdachannelRead0$0(WebSocketMessageHandler.java:47)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:566)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: java.io.IOException: Output closed at java.net.http/jdk.internal.net.http.websocket.MessageEncoder.encodeText(MessageEncoder.java:136) at java.net.http/jdk.internal.net.http.websocket.TransportImpl2.run(ThreadExecutorMap.java:74)atio.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)atjava.base/java.lang.Thread.run(Thread.java:829)Causedby:java.io.IOException:Outputclosedatjava.net.http/jdk.internal.net.http.websocket.MessageEncoder.encodeText(MessageEncoder.java:136)atjava.net.http/jdk.internal.net.http.websocket.TransportImplSendTask1.onText(TransportImpl.java:366) at java.net.http/jdk.internal.net.http.websocket.TransportImpl1.onText(TransportImpl.java:366)atjava.net.http/jdk.internal.net.http.websocket.TransportImplSendTask1.onText(TransportImpl.java:357) at java.net.http/jdk.internal.net.http.websocket.MessageQueue.peek(MessageQueue.java:223) at java.net.http/jdk.internal.net.http.websocket.TransportImpl1.onText(TransportImpl.java:357)atjava.net.http/jdk.internal.net.http.websocket.MessageQueue.peek(MessageQueue.java:223)atjava.net.http/jdk.internal.net.http.websocket.TransportImplSendTask.run(TransportImpl.java:545)
at java.net.http/jdk.internal.net.http.common.SequentialSchedulerCompleteRestartableTask.run(SequentialScheduler.java:147) at java.net.http/jdk.internal.net.http.common.SequentialSchedulerCompleteRestartableTask.run(SequentialScheduler.java:147)atjava.net.http/jdk.internal.net.http.common.SequentialSchedulerSchedulableTask.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.sendText(TransportImpl.java:149)
at java.net.http/jdk.internal.net.http.websocket.WebSocketImpl.sendText(WebSocketImpl.java:184)
at org.openqa.selenium.remote.http.jdk.JdkHttpClient5.lambda5.lambdasend$1(JdkHttpClient.java:211)
at org.openqa.selenium.remote.http.jdk.JdkHttpClient$5.send(JdkHttpClient.java:222)
... 9 more
15:34:19.591 WARN [DefaultChannelPipeline.onUnhandledInboundException] - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
org.openqa.selenium.WebDriverException: java.lang.IllegalArgumentException: statusCode
Build info: version: '4.6.0', revision: '79f1c02ae20'
System info: [os.name](http://os.name/) : 'Linux', os.arch: 'amd64', os.version: '5.4.0-1091-azure', java.version: '11.0.16'
Driver info: driver.version: unknown
at org.openqa.selenium.remote.http.jdk.JdkHttpClient5.send(JdkHttpClient.java:232) at org.openqa.selenium.netty.server.WebSocketMessageHandler.lambda5.send(JdkHttpClient.java:232)atorg.openqa.selenium.netty.server.WebSocketMessageHandler.lambdachannelRead0$0(WebSocketMessageHandler.java:47)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:566)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.IllegalArgumentException: statusCode
at java.net.http/jdk.internal.net.http.websocket.WebSocketImpl.sendClose(WebSocketImpl.java:301)
at org.openqa.selenium.remote.http.jdk.JdkHttpClient5.lambda5.lambdasend$2(JdkHttpClient.java:215)
at org.openqa.selenium.remote.http.jdk.JdkHttpClient5.send(JdkHttpClient.java:222) ... 9 more 15:34:19.673 INFO [GridModel.release] - Releasing slot for session id 871135c74f65c9368403e2c5b587c386 15:34:19.673 INFO [LocalSessionMap.lambda5.send(JdkHttpClient.java:222)...9more15:34:19.673INFO[GridModel.release]−Releasingslotforsessionid871135c74f65c9368403e2c5b587c38615:34:19.673INFO[LocalSessionMap.lambdanew$0] - Deleted session from local Session Map, Id: 871135c74f65c9368403e2c5b587c386
  • SELENIUM CHROME POD:
2022-11-17 15:26:04,639 INFO Included extra file "/etc/supervisor/conf.d/selenium.conf" during parsing
2022-11-17 15:26:04,643 INFO RPC interface 'supervisor' initialized
2022-11-17 15:26:04,643 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2022-11-17 15:26:04,643 INFO supervisord started with pid 9
2022-11-17 15:26:05,645 INFO spawned: 'xvfb' with pid 11
2022-11-17 15:26:05,646 INFO spawned: 'vnc' with pid 12
2022-11-17 15:26:05,647 INFO spawned: 'novnc' with pid 13
2022-11-17 15:26:05,649 INFO spawned: 'selenium-node' with pid 14
2022-11-17 15:26:05,666 INFO success: selenium-node entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
Generating Selenium Config
Configuring server...
Setting up SE_NODE_HOST...
Setting up SE_NODE_PORT...
Selenium Grid Node configuration:
[events]
publish = "tcp://selenium-hub:4442"
subscribe = "tcp://selenium-hub:4443"
[node]
grid-url = "http://selenium-hub:4444/wd/hub/ "
session-timeout = "300"
override-max-sessions = false
detect-drivers = false
drain-after-session-count = 0
max-sessions = 1
[[node.driver-configuration]]
display-name = "chrome"
stereotype = '{"browserName": "chrome", "browserVersion": "106.0", "platformName": "Linux"}'
max-sessions = 1
Starting Selenium Grid Node...
2022-11-17 15:26:06,670 INFO success: xvfb entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-11-17 15:26:06,670 INFO success: vnc entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-11-17 15:26:06,670 INFO success: novnc entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
15:26:07.161 INFO [LoggingOptions.configureLogEncoding] - Using the system default encoding
15:26:07.164 INFO [OpenTelemetryTracer.createTracer] - Using OpenTelemetry for tracing
15:26:07.381 INFO [UnboundZmqEventBus.<init>] - Connecting to tcp://selenium-hub:4442 and tcp://selenium-hub:4443
15:26:07.562 INFO [UnboundZmqEventBus.<init>] - Sockets created
15:26:08.563 INFO [UnboundZmqEventBus.<init>] - Event bus ready
15:26:08.756 INFO [NodeServer.createHandlers] - Reporting self as: http://10.244.1.71:5555/ 
15:26:08.768 INFO [NodeOptions.getSessionFactories] - Detected 1 available processors
15:26:08.868 INFO [NodeOptions.report] - Adding chrome for {"browserVersion": "106.0","se:noVncPort": 7900,"browserName": "chrome","platformName": "LINUX","se:vncEnabled": true} 1 times
15:26:08.879 INFO [Node.<init>] - Binding additional locator mechanisms: id, relative, name
15:26:09.197 INFO [NodeServer$1.start] - Starting registration process for Node http://10.244.1.71:5555/ 
15:26:09.197 INFO [NodeServer.execute] - Started Selenium node 4.5.3 (revision 4b786a1e430): http://10.244.1.71:5555/ 
15:26:09.257 INFO [NodeServer1.lambda1.lambdastart1] - Sending registration event... 15:26:09.465 INFO [NodeServer.lambda1]−Sendingregistrationevent...15:26:09.465INFO[NodeServer.lambdacreateHandlers$2] - Node has been added
Starting ChromeDriver 106.0.5249.61 (511755355844955cd3e264779baf0dd38212a4d0-refs/branch-heads/5249@{#569}) on port 17620
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations  for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
15:33:18.577 INFO [LocalNode.newSession] - Session created by the Node. Id: 37972c369578e697a6be9360403fd256, Caps: Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 106.0.5249.119, chrome: {chromedriverVersion: 106.0.5249.61 (511755355844..., userDataDir: /tmp/.com.google.Chrome.sUT3Fb}, goog:chromeOptions: {debuggerAddress: localhost:42649}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: LINUX, proxy: Proxy(), se:cdp: http://localhost:42649/ , se:cdpVersion: 106.0.5249.119, se:vncEnabled: true, se:vncLocalAddress: ws://10.244.1.71:7900, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:virtualAuthenticators: true}
15:33:18.676 INFO [ProxyNodeWebsockets.createWsEndPoint] - Establishing connection to ws://localhost:42649/devtools/browser/4cb31343-3639-4be6-95bf-0e2c0c39365d
15:33:20.063 WARN [DefaultChannelPipeline.onUnhandledInboundException] - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
org.openqa.selenium.WebDriverException: java.lang.IllegalArgumentException: statusCode
Build info: version: '4.5.3', revision: '4b786a1e430'
System info: [os.name](http://os.name/) : 'Linux', os.arch: 'amd64', os.version: '5.4.0-1091-azure', java.version: '11.0.16'
Driver info: driver.version: unknown
at org.openqa.selenium.remote.http.jdk.JdkHttpClient5.send(JdkHttpClient.java:232) at org.openqa.selenium.netty.server.WebSocketMessageHandler.lambda5.send(JdkHttpClient.java:232)atorg.openqa.selenium.netty.server.WebSocketMessageHandler.lambdachannelRead0$0(WebSocketMessageHandler.java:47)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:566)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.IllegalArgumentException: statusCode
at java.net.http/jdk.internal.net.http.websocket.WebSocketImpl.sendClose(WebSocketImpl.java:301)
at org.openqa.selenium.remote.http.jdk.JdkHttpClient5.lambda5.lambdasend$2(JdkHttpClient.java:215)
at org.openqa.selenium.remote.http.jdk.JdkHttpClient$5.send(JdkHttpClient.java:222)
... 9 more
15:33:20.196 INFO [SessionSlot.stop] - Stopping session 37972c369578e697a6be9360403fd256
Starting ChromeDriver 106.0.5249.61 (511755355844955cd3e264779baf0dd38212a4d0-refs/branch-heads/5249@{#569}) on port 22517
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations  for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
15:33:48.655 INFO [LocalNode.newSession] - Session created by the Node. Id: 871135c74f65c9368403e2c5b587c386, Caps: Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 106.0.5249.119, chrome: {chromedriverVersion: 106.0.5249.61 (511755355844..., userDataDir: /tmp/.com.google.Chrome.bMGdRp}, goog:chromeOptions: {debuggerAddress: localhost:45765}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: LINUX, proxy: Proxy(), se:cdp: http://localhost:45765/ , se:cdpVersion: 106.0.5249.119, se:vncEnabled: true, se:vncLocalAddress: ws://10.244.1.71:7900, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:virtualAuthenticators: true}
15:33:48.684 INFO [ProxyNodeWebsockets.createWsEndPoint] - Establishing connection to ws://localhost:45765/devtools/browser/d15d481d-342d-4935-9f0d-88dbf2e95d2b
15:33:49.587 WARN [MessageInboundConverter.channelRead0] - Frame is not final. Chaos may ensue
15:33:49.591 WARN [DefaultChannelPipeline.onUnhandledInboundException] - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
org.openqa.selenium.WebDriverException: java.lang.IllegalArgumentException: statusCode
Build info: version: '4.5.3', revision: '4b786a1e430'
System info: [os.name](http://os.name/) : 'Linux', os.arch: 'amd64', os.version: '5.4.0-1091-azure', java.version: '11.0.16'
Driver info: driver.version: unknown
at org.openqa.selenium.remote.http.jdk.JdkHttpClient5.send(JdkHttpClient.java:232) at org.openqa.selenium.netty.server.WebSocketMessageHandler.lambda5.send(JdkHttpClient.java:232)atorg.openqa.selenium.netty.server.WebSocketMessageHandler.lambdachannelRead0$0(WebSocketMessageHandler.java:47)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:566)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.IllegalArgumentException: statusCode
at java.net.http/jdk.internal.net.http.websocket.WebSocketImpl.sendClose(WebSocketImpl.java:301)
at org.openqa.selenium.remote.http.jdk.JdkHttpClient5.lambda5.lambdasend$2(JdkHttpClient.java:215)
at org.openqa.selenium.remote.http.jdk.JdkHttpClient$5.send(JdkHttpClient.java:222)
... 9 more
15:34:19.672 INFO [SessionSlot.stop] - Stopping session 871135c74f65c9368403e2c5b587c386

I have tried both with chrome and edge.
I have also tried different versions of playwright 1.17.3 to 1.27.2 and changed the browser versions on Selenium Grid deployment without any success :(

I also created another app that uses Selenium.Webdriver and everything works fine:

using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Support.UI;

namespace WebScreenShot
{
    internal class Program
    {
        static void Main(string[] args)
        {
            CaptureWebPage("https://learnwithhasan.com");
        }

        public static void CaptureWebPage(string url)
        {
            var options = new ChromeOptions();
            //options.AddArgument("--headless");
            options.AddArgument("user-agent=Mozilla/5.0 " +
                "(Windows NT 10.0; Win64; x64) AppleWebKit/537.36" +
                " (KHTML, like Gecko) Chrome/74.0.3729.169 " +
                "Safari/537.36");

            RemoteWebDriver driver;

            //CHROME and IE            
            ChromeOptions Options = new ChromeOptions();

            driver = new RemoteWebDriver(
                new Uri("http://selenium-hub:4444/wd/hub/"),Options.ToCapabilities(), TimeSpan.FromSeconds(600));// NOTE: connection timeout of 600 seconds or more required for time to launch grid n

            driver.Navigate().GoToUrl(url);

            ITakesScreenshot screenshotDriver = 
                driver as ITakesScreenshot;
         
            //< a href = "https://learnwithhasan.com/google-ads-api-keyword-tool-csharp/" >
            //           Google Ads API: Build A Keyword Research Tool With C# For Free!			</a>
            WebDriverWait w = new WebDriverWait(driver, TimeSpan.FromSeconds(20));
            w.Until(drv => drv.FindElement(By.XPath("//a[@href='https://learnwithhasan.com/google-ads-api-keyword-tool-csharp/']")));
            var element= driver.FindElement(
                    By.XPath("//a[@href='https://learnwithhasan.com/google-ads-api-keyword-tool-csharp/']"));
               element.Click();
               Screenshot screenshot = screenshotDriver.GetScreenshot();
            screenshot.SaveAsFile("Test.png");
        }
    }
}

Thank you in advance!
Dimitris

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions