7

Ich betreibe Selen Testfälle in einem Ubuntu-Server, der grundsätzlich Testfälle in Firefox und Chrome ausführt. Firefox startet und Testfälle laufen erfolgreich, aber Chrom wirft Ausnahme:Webdriver Ausnahme: "Chrome nicht erreichbar"

***** unterhalb der Ausschnitt aus dem Stacktrace ist: *****

Ab ChromeDriver (v2.8.240825) auf Port 21549

PAC-Unterstützung deaktiviert, weil es keine Systemimplementierung

-Test IntegrationTest.AdminUserelementscheck ist fehlgeschlagen:

org.openqa.selenium.WebDriverException: Chrom nichterreichbar(Treiberinfo: chromedriver = 2.8.240825, Plattform = Linux 2.6.32-431.el6.x86_64 x86_64) (WARNUNG: Der Server hat keine Stacktrace-Informationen angegeben) [Fehler] Befehlsdauer oder Zeitüberschreitung: 20,83 Sekunden


Hallo Unten ist der kleine Ausschnitt aus meinem Code:

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

Es kann auch eine Portweiterleitung zwischen Ihrem Andock-Container und einem Remote-Gerät/Host sein. –

Antwort

19

Dies wäre da Chrome auch die Verwendung von Unix-Container, um zu machen ist zu laufen. Wenn Sie dies innerhalb von Docker ausgeführt werden soll, übergeben Sie den Docker Fahrbefehl

--privileged

Ansonsten können Sie Chrome mit

--no-Sandbox

starten
+1

läuft Vielen Dank, es hat funktioniert. –

+3

@Conor @ Immanuel Fredrick: Wo gebe ich diesen Befehl ab? Bitte helfen Sie mit oben als Beispiel zu verstehen. –

+0

Okay, ich habe versucht, dies an Chrome-Argumente zu übergeben, aber es besagt, dass die Umgebung in diesem Fall nicht verfügbar ist. –

1

Ihre Chrom-Treiber scheint alt zu sein. Versuchen Sie, das neueste Datum ab dem Datum herunterzuladen und melden Sie sich zurück, wenn Sie neue Fehler erhalten.

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

+0

Ich habe die meisten Versionen von verchromten direkt von 2,7 bis 2,14 versucht. Es wirft den gleichen Fehler –

+1

Punkt zu beachten ist, dass das gesamte Setup innerhalb eines Docker Container –

0

Stellen Sie außerdem sicher, dass die Umgebungsvariable PATH den Pfad zum Chromedriver enthält.

+0

Ich habe chromedriver ausführbar im Systemumgebungspfad platziert. Und es ist in der Lage, den Chromtreiber auszuwählen, aber nicht starten. –

+1

Haben Sie vor dem Aufruf des Skripts XServer Display-Parameter wie DISPLAY =: 0 konfiguriert? –

3

Ich habe ähnliche Problem aufgetreten. Ich führe meine Selenium-Tests lokal aus und der Fehler "webdriver exception chrome not reachable" tauchte plötzlich auf.

Das Problem war, dass ich bereits zu viele Registerkarten in meinem normalen Chrom-Browser hatte. Nachdem ich frustriert war, habe ich ein paar Tabs geschlossen und plötzlich funktionierte es. Ich bin mir nicht sicher, ob es eine bestimmte Anzahl von Tabs gibt, aber wenn jemand auf dasselbe Problem stößt, versuchen Sie es.

+0

Ich werde versuchen, beim nächsten Mal einfacher zu sein :) – sKyTzi