2016-07-12 12 views
0

Ich muss eine App automatisieren. In einem Abschnitt kann der Benutzer dropbox, gdrive durchsuchen, muss sich aber vorher einloggen. Der Anmeldebildschirm wird in einem Browser geöffnet. Hier muss ich auf Browser-Elemente zugreifen, die über Webview erfolgen können. Das Problem:Appium Python Wie starte ich die hybride App und wechsle dann zu webview nach

Ich kann nicht vom nativen Kontext zu Webview wechseln. Mit dem Befehl print driver.contexts wird nur'Native_APP 'gedruckt. Also habe ich verschiedene Dinge ausprobiert und mit verschiedenen Caps sehe ich Native und Webview.

Aber wie kann ich native App ausführen und später zu Webview wechseln? Fehle ich etwas? Unten können Sie meine Kappen sehen.

Einheimische und Web-Kontext zur Verfügung, kann aber meine App nicht starten ..:

#set up appium 
desired_caps      = dict() 
desired_caps['platformName']  = 'Android' 
desired_caps['deviceName']   = 'Android Device' 
desired_caps['app']     = PATH(ARTIFACTS_PATH + 'sample.apk') 
desired_caps['appActivity']   = 'com.google.android.apps.chrome.ChromeTabbedActivity' 
desired_caps['appPackage']   = 'com.android.chrome' 
desired_caps['browser']    = 'Chrome' 



driver        = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) 

print driver.contexts 

Kann meine app starten, aber ohne webview Kontext zur Verfügung:

#set up appium 
    desired_caps      = dict() 
    desired_caps['platformName']  = 'Android' 
    desired_caps['deviceName']   = 'Android Device' 
    desired_caps['app']     = PATH(ARTIFACTS_PATH + 'sample.apk') 
    desired_caps['appActivity']   = 'com.mysample.sample.HomeActivity' 
     desired_caps['appPackage']  = 'com.mysample.sample' 


    driver        = webdriver.Remote('http://localhost:4723/wd/hub', 
    print driver.contexts 

musste wegen appname und Paketnamen ersetzen zu den Unternehmensregeln

Ich weiß, dass der eigentliche Befehl zu wechseln ist driver.switch_to.context ('Webview') aber ich kann nicht umschalten, wenn überhaupt kein Webview verfügbar ist.

Antwort

0

Webview Debuggen muss auf true Entwickler, um zu setzen Aktionen im Web-Ansicht auszuführen

+0

nach Angaben des Entwicklers. Ich habe sie bereits danach gefragt ... –

0

etwas Schlaf oder implizite Warte gesorgt werden, so dass alle Lasten Kontexte und sehen, ob Sie App Webview gedruckt wird oder nicht verwenden und wenn Dann frage Entwickler nicht, ob sie Zebrastreifen benutzen oder nicht. Wenn sie crosswalk (https://github.com/appium/appium/issues/4597 bekanntes Problem) verwenden, dann könnte dies hilfreich sein https://github.com/ITKarel/ChromeDriver

+0

Links zu möglichen Lösungen sind immer willkommen, aber bitte fügen Sie einige Details für zukünftige Besucher hinzu, falls der Link nicht mehr verfügbar ist. –