selenium: WebSocketException in DevToolsSession
๐ Bug Report
Chrome Dev Tools closing web socket connection when WebDriver DevToolsSession uses default KeepAliveInterval for ClientWebSocket instance
To Reproduce
var driver = new ChromeDriver();
var session = driver.CreateDevToolsSession();
session.Network.WebSocketFrameError += Network_WebSocketFrameError;
session.Network.WebSocketCreated += Network_WebSocketCreated;
session.Network.WebSocketClosed += Network_WebSocketClosed;
session.Network.WebSocketFrameReceived += Network_WebSocketFrameReceived;
session.Network.WebSocketFrameSent += Network_WebSocketFrameSent;
await session.Network.Enable(new EnableCommandSettings());
driver.Url = "https://www.websocket.org/echo.html";
Console.ReadLine();
driver.Quit();
After some time inactivity (5-30 sec) m_sessionSocket (DevToolsSession.cs ) throw WebSocketException โThe remote party closed the WebSocket connection without completing the close handshakeโ and ReceiveMessage listener catching this exception and silently terminating
Fix
Set zero keep alive interval in DevToolsSession constructor:
m_sessionSocket = new ClientWebSocket();
m_sessionSocket.Options.KeepAliveInterval = TimeSpan.Zero;
Environment
OS: Windows 10 and Ubuntu 20.04 Browser: Chrome Browser version: 81.0.4044.138 (Official Build) (64-bit) Browser Driver version: ChromeDriver 81.0.4044.13800 Language Bindings version: .NetCore 3.1.202
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Comments: 15 (2 by maintainers)
Thank you all, I just turned off the Keep Alive on my connections, and that seems to have resolved my issue.