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)

Most upvoted comments

Thank you all, I just turned off the Keep Alive on my connections, and that seems to have resolved my issue.