Przekroczono limit czasu odbioru wiadomości z mechanizmu renderującego: 10.000

Jan 07 2020

Podczas uruchamiania moich scenariuszy pojawia się następujący błąd.

org.openqa.selenium.TimeoutException: timeout: Przekroczono limit czasu odbioru wiadomości z mechanizmu renderującego: 10.000

(Informacje o sesji: chrome = 79.0.3945.79) Informacje o kompilacji: wersja: „3.14.0”, wersja: „aacccce0”, godzina: „2018-08-02T20: 19: 58.91Z” Informacje o systemie: host: „fv-az598 ', ip: '10 .1.0.4', os.name: 'Linux', os.arch: 'amd64', os.version: '4.15.0-1064-azure', java.version: '1.8.0_212' Sterownik info: org.openqa.selenium.remote.RemoteWebDriver Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 79.0.3945.79 , chrome: { chromedriverVersion: 79.0.3945.36

Jak widać, z pogrubioną, wyróżnioną czcionką mam pasujące wersje sterownika chrome i chrome.

Przekazuję też kilka argumentów do moich ChromeOptions, które oznaczały pomoc z przekroczeniem limitów czasu:

        // options to prevent TIMEOUTS
        options.addArguments("start-maximized"); //https://stackoverflow.com/a/26283818/1689770
        options.addArguments("enable-automation"); //https://stackoverflow.com/a/43840128/1689770
        options.addArguments("--no-sandbox"); //https://stackoverflow.com/a/50725918/1689770
        options.addArguments("--disable-infobars"); //https://stackoverflow.com/a/43840128/1689770
        options.addArguments("--disable-dev-shm-usage"); //https://stackoverflow.com/a/50725918/1689770
        options.addArguments("--disable-browser-side-navigation"); //https://stackoverflow.com/a/49123152/1689770
        options.addArguments("--disable-gpu"); //https://stackoverflow.com/questions/51959986/how-to-solve-selenium-chromedriver-timed-out-receiving-message-from-renderer-exc
        options.addArguments("--disable-features=VizDisplayCompositor"); //https://stackoverflow.com/questions/55373625/getting-timed-out-receiving-message-from-renderer-600-000-when-we-execute-selen

Edycja: dzieje się to podczas uruchamiania w kontenerze DOCKER (przy użyciu NAJNOWSZYCH obrazów dockera dla przeglądarki Chrome i node-chrome-debug)

Wszelkie pomysły będą mile widziane.

Odpowiedzi

2 DebanjanB Jan 08 2020 at 02:54

Ten komunikat o błędzie ...

org.openqa.selenium.TimeoutException: timeout: Timed out receiving message from renderer: 10.000

... oznacza, że ChromeDriver nie był w stanie zainicjować / odrodzić nowego kontekstu przeglądania, tj . sesji przeglądarki Chrome .

Twoim głównym problemem jest niezgodność między wersjami plików binarnych, których używasz w następujący sposób:

  • Twoja wersja Selenium Client to 3.14.0 z 2018-08-02T20: 19: 58.91Z, która jest prawie 1,5 roku starsza, a współbieżny sterownik ChromeDriver był zgodny z OSS .
  • Używasz chromedriver = 79,0
  • Używasz chrome = 79.0
  • Chociaż chromedriver = 79.0 i chrome = 79.0 są współbieżne, ale są niekompatybilne z wersją Selenium Client 3.14.0 .

Istnieje więc wyraźna niezgodność między Selenium Client w wersji 3.14.0 , ChromeDriver w wersji 79.0 i przeglądarką Chrome w wersji 79.0


Rozwiązanie

Upewnij się, że:

  • Pakiet JDK został zaktualizowany do obecnych poziomów JDK 8u222 .
  • Selenium jest aktualizowane do obecnych poziomów Wersja 3.141.59 .
  • Oczyść swój projektu Workspace za pośrednictwem IDE i odbudować swój projekt z zaledwie wymaganych zależności.

tl; dr

Możesz znaleźć kilka odpowiednich dyskusji w:

  • Przekroczono limit czasu odbioru wiadomości z mechanizmu renderującego
  • Błąd [POWAŻNY]: Przekroczono limit czasu odbioru wiadomości z mechanizmu renderującego: 20 000 podczas wykonywania pakietu testowego przez Selenium na Jenkins