Zdarza się to często, gdy używasz ChromeDriver lub Chrome za pomocą specjalnej wiązki testowej (być może IDE) lub systemu ciągłej kompilacji (np. Jenkinsa).
Najpierw uruchom ten sam plik binarny Chrome, którego test używa w zwykłym wierszu polecenia użytkownika (sprawdź plik chromedriver.log
, aby zobaczyć, co jest używane w Chrome). Jeśli przekazujesz do Chrome specjalne przełączniki lub argumenty wiersza poleceń, pamiętaj, by je też uwzględnić. Jeśli Chrome nie uruchamia się prawidłowo,
musisz naprawić przeglądarkę (być może instalując ją ponownie).
Jeśli możesz uruchomić Chrome z poziomu wiersza poleceń, sprawdź, czy ten sam problem wystąpi w przypadku testu w środowisku testowym (najlepiej uruchom testowy plik binarny lub skrypt bezpośrednio z wiersza polecenia zwykłego użytkownika). Sprawdź też, czy możesz uruchomić Chrome bezpośrednio z poziomu testu (bez użycia funkcji WebDriver/ChromeDriver). Na przykład w języku Java możesz użyć interfejsu ProcessBuilder API, aby bezpośrednio uruchomić plik binarny Chrome. Jeśli test wykaże ten sam problem nawet w środowisku testowym, zgłoś nowy problem z instrukcjami, jak go odtworzyć.
Jeśli problem występuje tylko w specjalnym środowisku testowym:
za pomocą alternatywnego instalatora Chrome, Spowoduje to zainstalowanie Chrome u wszystkich użytkowników. Często rozwiązuje to problemy, jeśli Selenium działa jako usługa działająca w tle.
Częstą przyczyną awarii Chrome podczas uruchamiania jest uruchamianie Chrome jako użytkownik root (administrator) w Linuksie. Można obejść ten problem, omijając flagę --no-sandbox
podczas tworzenia sesji WebDriver, jednak taka konfiguracja nie jest obsługiwana i zdecydowanie odradzamy. Skonfiguruj środowisko tak, aby przeglądarka Chrome uruchamiała się jako zwykły użytkownik.
Jeśli żadne z tych rozwiązań nie pomoże, zgłoś nowy problem z instrukcjami, jak go odtworzyć. Jeśli problem występuje tylko w specjalnym, nietypowym środowisku testowym, pamiętaj, że programiści ChromeDriver mogą się nie zdecydować na jego zbadanie ani rozwiązanie.