- 
          
 - 
                Notifications
    
You must be signed in to change notification settings  - Fork 8.6k
 
Description
What happened?
After a little bit of time of using chromedriver with a browser version under chrome v130 via selenium/selenium-manager (we were using v122 and v125, but tested up to v129) we experience a crash after a little while, like in this screenshot
included an example that can be run with scala-cli (and I guess should be easy to translate to java, but apologies I'm not very familiar with it!)
this didn't seem to be occurring for us before last friday, we're not sure what's changed - seems like maybe closing and reopening browser before and after test rather than beforeall and afterall might mitigate it a bit but we're not totally sure
How can we reproduce the issue?
//> using scala 2.13
//> using dep "org.seleniumhq.selenium:selenium-java:4.22.0"
import org.openqa.selenium.By
import org.openqa.selenium.chrome.{ChromeDriver, ChromeOptions}
import org.openqa.selenium.manager.SeleniumManager
import org.openqa.selenium.remote.RemoteWebDriver
import java.util.concurrent.{ThreadLocalRandom, TimeUnit}
import java.util.logging.{FileHandler, Level, Logger}
import scala.reflect.classTag
/* Open a repl with `scala-cli repl Selenium.scala`
 *
 * Then try running this multiple times within the repl like
 * 
 * 1 to 10 foreach { i => Selenium.trySubmittingATechnicalSupportRequestWithAnInvalidEmail() }; println("ran 10 times")
 * ```
 */
object Selenium {
  private val logger = Logger.getLogger("")
  logger.setLevel(Level.FINE)
  logger.addHandler(new FileHandler("selenium.xml"))
  Logger.getLogger(classTag[RemoteWebDriver].runtimeClass.getCanonicalName).setLevel(Level.FINEST);
  Logger.getLogger(classTag[SeleniumManager].runtimeClass.getCanonicalName).setLevel(Level.SEVERE);
  System.setProperty("webdriver.chrome.logfile", "chromedriver.log");
  System.setProperty("webdriver.chrome.verboseLogging", "true");
  private val options = new ChromeOptions
  options.setBrowserVersion(sys.env.getOrElse("BROWSER_VERSION", "125"))
  options.addArguments("--disable-features=MediaRouter")
  //options.addArguments("--headless=new")
  options.addArguments("--no-sandbox")
  options.addArguments("--disable-setuid-sandbox")
  options.setAcceptInsecureCerts(true)
  private val driver = new ChromeDriver(options)
  driver.manage().window().maximize()
  def trySubmittingATechnicalSupportRequestWithAnInvalidEmail(): Unit = {
    driver.get("https://www.tax.service.gov.uk/contact/report-technical-problem")
    driver.findElement(By.id("report-name")).click();
    driver.findElement(By.id("report-name")).sendKeys("oscar duignan");
    driver.findElement(By.id("report-email")).click();
    driver.findElement(By.id("report-email")).sendKeys("invalid email so that this won't actually be sent to the technical support team");
    driver.findElement(By.id("report-action")).click();
    driver.findElement(By.id("report-action")).sendKeys("this is a test of selenium to see if I can trigger the issue without using ui-test-runner");
    driver.findElement(By.id("report-error")).click();
    driver.findElement(By.id("report-error")).sendKeys("nothing, this shouldn\'t get sent anywhere");
    driver.findElement(By.cssSelector(".govuk-button")).click();
    // not sure if time open plays a part, so adding a random short delay
    TimeUnit.MILLISECONDS.sleep(ThreadLocalRandom.current().nextInt(200, 1000))
  }
}Relevant log output
// I only included the logs around the error that mentioned devtools, let me know if you need more, but the file is 18mb - there's also logs attached to the description from chromedriver 
 <millis>1730215241567</millis>
  <nanos>355000</nanos>
  <sequence>38293</sequence>
  <logger>jdk.internal.httpclient.websocket.debug</logger>
  <level>FINE</level>
  <class>jdk.internal.net.http.websocket.WebSocketImpl$ReceiveTask</class>
  <method>lambda$processClose$0</method>
  <thread>36</thread>
  <message>[HttpClient-2-SelectorManager] [30s 548ms] [WebSocket] CompletionStage returned by onClose completed result=jdk.internal.net.http.websocket.WebSocketImpl@5fa99ec7[uri=ws://localhost:50113/devtools/browser/45be6456-b2aa-4abd-a18b-04aeacdbfcce] error=null</message>
  <param>jdk.internal.net.http.websocket.WebSocketImpl@5fa99ec7[uri=ws://localhost:50113/devtools/browser/45be6456-b2aa-4abd-a18b-04aeacdbfcce]</param>
  <param>???</param>
</record>
<record>
  <date>2024-10-29T15:20:41.567821Z</date>
  <millis>1730215241567</millis>
  <nanos>821000</nanos>
  <sequence>38294</sequence>
  <logger>jdk.internal.httpclient.websocket.debug</logger>
  <level>FINE</level>
  <class>jdk.internal.net.http.websocket.TransportImpl</class>
  <method>sendClose</method>
  <thread>36</thread>
  <message>[HttpClient-2-SelectorManager] [30s 548ms] [Transport] enter send close 1 statusCode=1000 reason.length=0</message>
  <param>1</param>
  <param>1000</param>
  <param>0</param>
</record>
<record>
  <date>2024-10-29T15:20:41.568288Z</date>
  <millis>1730215241568</millis>
  <nanos>288000</nanos>
  <sequence>38295</sequence>
  <logger>jdk.internal.httpclient.websocket.debug</logger>
  <level>FINE</level>
  <class>jdk.internal.net.http.websocket.TransportImpl$SendTask</class>
  <method>run</method>
  <thread>36</thread>
  <message>[HttpClient-2-SelectorManager] [30s 549ms] [Transport] enter send task</message>
</record>
<record>
  <date>2024-10-29T15:20:41.568313Z</date>
  <millis>1730215241568</millis>
  <nanos>313000</nanos>
  <sequence>38296</sequence>
  <logger>org.openqa.selenium.remote.RemoteWebDriver</logger>
  <level>FINE</level>
  <class>org.openqa.selenium.remote.RemoteWebDriver</class>
  <method>log</method>
  <thread>1</thread>
  <message>Executed: get (Response: SessionID: 5334d0caad14df893f0783c87a16af52, State: disconnected, Value: org.openqa.selenium.WebDriverException: disconnected: unable to send message to renderer
  (failed to check if window was closed: disconnected: not connected to DevTools)
  (Session info: chrome=125.0.6422.141)
Build info: version: '4.22.0', revision: 'c5f3146703*'
System info: os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '14.0', java.version: '11.0.24'
Driver info: driver.version: RemoteWebDriver)</message>
</record>
<record>
  <date>2024-10-29T15:20:41.568600Z</date>
  <millis>1730215241568</millis>
  <nanos>600000</nanos>
  <sequence>38297</sequence>
  <logger>jdk.internal.httpclient.websocket.debug</logger>
  <level>FINE</level>
  <class>jdk.internal.net.http.websocket.TransportImpl$SendTask</class>
  <method>run</method>
  <thread>36</thread>
  <message>[HttpClient-2-SelectorManager] [30s 549ms] [Transport] load message</message>
</record>
<record>
  <date>2024-10-29T15:20:41.568773Z</date>
  <millis>1730215241568</millis>
  <nanos>773000</nanos>
  <sequence>38298</sequence>
  <logger>jdk.internal.httpclient.websocket.debug</logger>
  <level>FINE</level>
  <class>jdk.internal.net.http.websocket.MessageEncoder</class>
  <method>encodeClose</method>
  <thread>36</thread>
  <message>[HttpClient-2-SelectorManager] [30s 549ms] [Output] encode close statusCode=1000 reason=[pos=0 lim=0 cap=0] dst=java.nio.HeapByteBuffer[pos=0 lim=16384 cap=16384]</message>
  <param>1000</param>
  <param>0</param>
  <param>0</param>
  <param>0</param>
  <param>java.nio.HeapByteBuffer[pos=0 lim=16384 cap=16384]</param>
</record>
<record>
  <date>2024-10-29T15:20:41.568907Z</date>
  <millis>1730215241568</millis>
  <nanos>907000</nanos>
  <sequence>38299</sequence>
  <logger>jdk.internal.httpclient.websocket.debug</logger>
  <level>FINE</level>
  <class>jdk.internal.net.http.websocket.MessageEncoder</class>
  <method>encodeClose</method>
  <thread>36</thread>
  <message>[HttpClient-2-SelectorManager] [30s 549ms] [Output] reason [pos=0 lim=0 cap=0]</message>
  <param>0</param>
  <param>0</param>
  <param>0</param>
</record>
<record>Operating System
Intel Mac (but also seen this in our CI which is linux)
Selenium version
Java 4.22.0, Java 4.25.0
What are the browser(s) and version(s) where you see this issue?
Chrome 122, Chrome 125, Chrome 129
What are the browser driver(s) and version(s) where you see this issue?
Chrome 125.0.6422.141
Are you using Selenium Grid?
No
