2016-06-28 22 views
0

Ich versuche Android-Gerät unter MAC OS X zu testen, mit Appium (in Java). Der Build-Pfad enthält diese:Appium MAC OS Android Java - org.openqa.selenium.SessionNotCreatedException

java-client-<version>.jar 
    java-client-<verson>-sources.jar 
    selenium-java-<version>.jar 
    selenium-server-standalone-<version>.jar 

(die Version der letzten 2 das gleiche ist), und TestNG.

Starten des Appium-Servers (ich verwende die GUI) funktioniert gut und die Anwendung (die bereits auf dem Gerät installiert ist) wird gestartet. Mit dem Debuggen meines Eclipse-Projekts, das die folgenden Zeilen enthält, erhalte ich den Fehler für die 3. Zeile.

DesiredCapabilities capabilities = new DesiredCapabilities(); 
    capabilities.setCapability("deviceName", "Plus"); 
    AppiumDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); 

Der vollständige Fehler ich bin immer ist:

org.openqa.selenium.SessionNotCreatedException: A new session could not be created. Details: Problem getting session data for driver type AndroidDriver; does it implement 'get driverData'? 

Antwort

0

Sie sagen, dass die GUI die Anwendung startet? Wenn das der Fall ist und Sie im Code Ihre vollständigen DesiredCapabilities anzeigen, sind Ihre Fähigkeiten das Problem.

Sie können sehen, welche Funktionen die Appium GUI oben mit dem Text "Appium mit Befehl starten" verwendet.

Wenn Sie diese Flags in Ihren Fähigkeiten festlegen, sollte der Treiber ordnungsgemäß verbinden.

+0

nicht neu starten Danke, ich war dieser Idee nicht bewusst. Es funktioniert immer noch nicht. Ich werde meinen Code anhängen. Bitte sehen Sie meine Antwort an mich. Ich weiß nicht, was ich vermisse. –

+0

Ich sehe immer noch nicht die "App" -Funktion für Ihre Fähigkeiten (die angibt, die. APK zu verwenden). Hier ist eine ähnliche SO Frage, die eine funktionierende DesiredCapabilities zeigt: http://stackoverflow.com/questions/32048031/org-openqa-selenium-sessionnotcreatedexception-a-new-session-could-not-be-creat – abrarisme

+0

Ich entfernte alles die Fähigkeiten von meinem Java-Code und jetzt funktioniert es. Ich denke, die Vervielfältigung hat dazu geführt, dass sie stecken geblieben ist. –

0

Sie haben vergessen, die Appium-Sitzung mit driver.close() zu schließen?

Versuchen Sie, Ihren Appium-Server neu zu starten.

P/s: Wenn Sie schließen möchten nicht Treiber, müssen Sie Session überschreiben in appium GUI Einstellungen aktivieren oder --session-override in appium Befehlszeile hinzufügen. Dann müssen Sie Appium Server