7

Używam testowych przypadków selenu na serwerze Ubuntu, który zasadniczo uruchamia testowanie w firefox i chrome. Firefox uruchamia i przypadków testowych zakończą się pomyślnie, ale chrom rzuca wyjątek:Wyjątek dla programu Webdriver: "Chrom nieosiągalny"

***** poniżej jest urywek stacktrace: *****

Zaczynając ChromeDriver (v2.8.240825) na porcie 21549

wsparcie PAC wyłączona, ponieważ nie ma wdrożenie systemu

test IntegrationTest.AdminUserelementscheck failed:

org.openqa.selenium.WebDriverException: chrom nieosiągalny (Informacje o sterowniku: chromedriver = 2.8.240825, platforma = Linux 2.6.32-431.el6.x86_64 x86_64) (OSTRZEŻENIE: Serwer nie podał żadnych informacji o stosie) [błąd] Czas trwania polecenia lub limit czasu: 20,83 sekundy


Cześć Poniżej znajduje się niewielki fragment mojego kodu:

public class IntegrationTest { 

private static final String configFile="test.properties"; 

private final String FIREFOX="firefox"; 

private final String CHROME="chrome"; 

private final String PHANTOMJS="phantomjs"; 

private final String BROWSERNAME="browser"; 

private static Properties props = new Properties(); 

public WebDriver webDriver; 

private static Configuration additionalConfigurations; 


@BeforeClass 

public static void setUp() throws IOException, SQLException{ 

props.load(IntegrationTest.class.getResourceAsStream("/" + configFile)); 
     } 

@test 

public void AdminUserelementscheck() throws SQLException, IOException { 

String[] browsers = props.getProperty(BROWSERNAME).split(","); 

System.out.println("Number of browsers specified in conf:"+props.getProperty(BROWSERNAME)); 

for(String browser:browsers){ 

System.out.println("Browser currently processing:"+browser); 

if(browser.equalsIgnoreCase(FIREFOX)) 

webDriver = new FirefoxDriver(); 

else if(browser.equalsIgnoreCase(CHROME)) 

webDriver = new ChromeDriver(); 

else 

webDriver = new PhantomJSDriver(); 

running(testServer(3333,fakeApplication()),webDriver, new Callback<TestBrowser>() { 


********* LOGIN AND ASSERTION STATMENTS******************* 

browser.quit() 

} 

}); 

} 
+0

Może to być również problem z przekierowaniem portów między kontenerem dokera a zdalnym urządzeniem/hostem. –

Odpowiedz

19

Byłoby ponieważ Chrome jest również wykorzystanie kontenerów uniksowych w celu uruchomienia. Jeśli chcesz to uruchomić w ciągu docker, przekazać polecenia run doker

--privileged

przeciwnym razie można uruchomić Chrome z

--no-piaskownicy

+1

Wielkie dzięki, że działało. –

+3

@Conor @ Immanuel Fredrick: Gdzie mogę umieścić to polecenie? Prosimy o zrozumienie powyższego jako przykładu. –

+0

Okay, próbowałem przekazać to do argumentów chrome, ale mówi, że środowisko nie jest dostępne w tym przypadku. –

1

sterownik chrom wydaje się być stare. Spróbuj pobrać najnowszą datę z dołu i zgłoś, jeśli pojawią się nowe błędy.

http://chromedriver.storage.googleapis.com/index.html?path=2.14/

+0

Próbowałem większość wersji chromedriver od 2.7 do 2.14. Powoduje to ten sam błąd, co –

+1

Należy zauważyć, że cała konfiguracja działa w kontenerze dokowania –

0

Upewnij się także, że zmienna środowiskowa PATH ma ścieżkę do chromedriver.

+0

Mam plik wykonywalny chromeedriver umieszczony w ścieżce środowiska systemowego. Jest w stanie wybrać chromowaną kolumnę, ale jej nie uruchomić. –

+1

Czy przed wywołaniem skryptu skonfigurowano parametr wyświetlania XServer, taki jak DISPLAY =: 0? –

3

Zaatakowałem podobny problem. Testy Selenium są uruchamiane lokalnie i nagle pojawił się błąd "nieoczekiwany dostęp do chrome webdriver".

Problem polegał na tym, że miałem już za dużo kart w mojej zwykłej przeglądarce Chrome. Po frustracji zamknąłem kilka zakładek i nagle zadziałało. Nie jestem pewien, czy istnieje pewien limit kart, ale jeśli ktoś napotka na ten sam problem, spróbuj.

+0

Postaram się być bardziej bezpośredni następnym razem :) – sKyTzi

Powiązane problemy