[FIXED] Selenium::WebDriver::Error Chrome stürzte auf M1-Chip ab

Ausgabe

Ich habe mehrere Tage damit verbracht, dieses Problem zu lösen, auf das ich mit dem folgenden Code stoße:

caps = Selenium::WebDriver::Remote::Capabilities.chrome(
      "chromeOptions" => {
        :args => ['--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 LegalMonsterNoBlock"']
      }
    )
    driver = Selenium::WebDriver.for :remote, url: selenium_host, :desired_capabilities => caps
    driver.get(url)

Ich versuche, einen Test auszuführen, der diese Methode aufruft . Der Test läuft einwandfrei. Es wird geöffnet, Chrome führt den Test aus, aber immer wenn ich den Teil meiner Anwendung erreiche, der die obige Methode aufruft, schlägt der Test mit dem folgenden Fehler fehl:

Minitest::UnexpectedError: Selenium::WebDriver::Error::UnknownError: unknown error: Chrome failed to start: crashed
          (chrome not reachable)
          (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
        Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'
        System info: host: '7a6aaccda364', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '4.19.121-linuxkit', java.version: '1.8.0_232'
        Driver info: driver.version: unknown
        remote stacktrace: #0 0x0040004b6479 <unknown>

Mein Setup:

  • MacBook mit Apple M1, auf dem Big Sur 11.2.2 ausgeführt wird
  • Ruby-Version 2.7.2
  • ChromeDriver 89.0.4389.23 (für m1-Chip)
  • Chrome-Version 89.0.4389.72 (offizieller Build) (arm64)
  • selenium-webdriverGem-Version 3.142.3
  • Ausführen eines Dockers selenium/standalone-chrome-debug:3.141.59-zinc

Ich habe schon einiges ausprobiert :

  • Hinzufügen --headlessvon , --no-sandboxOptionen zu args:args => ['--headless', '--no-sandbox' ...
  • Installieren von Chromedriver und Chrome über Brew, anstatt Binärdateien herunterzuladen
  • Chrome und Chromedriver neu installieren
  • Explizite Angabe des Pfads zu Chrome und Chromedriver ( Selenium::WebDriver::Chrome.path = '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome'und Selenium::WebDriver::Chrome.driver_path="/path/to/chrome_driver_binary/chromedriver")

Gibt es noch andere, die solche Probleme haben?

Lösung

Es stellte sich heraus, dass es mein Docker-Image ist, das die arm64-Architektur nicht unterstützt, also war es dieser Schritt:
Running a docker selenium/standalone-chrome-debug:3.141.59-zinc.

Es gab kein Problem, wenn ich den Teil der Tests deaktivierte, der den Docker-Container verwendete. Ich kann mir vorstellen, dass dies nicht für jeden möglich ist, aber hoffen wir, dass es bald ein Selenium-Image geben wird, das die arm64-Architektur unterstützt.

Siehe Selen-Problem hier.


Beantwortet von –
em0605


Antwort geprüft von –
Willingham (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like