Description
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