Appium Python如何启动混合应用程序,然后在

时间:2016-07-12 09:50:21

标签: android python webview appium

我必须自动化一个应用程序。在某些部分,用户可以浏览dropbox,gdrive但必须先登录。登录屏幕在浏览器中打开。在这里,我需要访问可以通过webview完成的浏览器元素。问题:

我无法从Native上下文切换到Webview。使用命令print driver.contexts仅打印u'Native_APP'。所以我尝试了不同的功能和不同的上限,我看到了Native和Webview。

但是如何运行原生应用并稍后切换到webview?我错过了什么吗?下面你可以看到我的上限。

原生和Web上下文可用,但无法启动我的应用..:

 #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

可以启动我的应用但没有可用的webview上下文:

#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

由于公司规则而无法替换appname和包名称

我知道切换的实际命令是driver.switch_to.context('Webview') 但是,当首先没有可用的webview时,我无法切换。

2 个答案:

答案 0 :(得分:0)

开发人员需要将Webview调试设置为true才能在Web视图中执行操作

答案 1 :(得分:0)

提供一些睡眠或隐式等待,以便所有上下文加载并查看您的应用程序是否正在打印Webview或不使用,如果没有,则询问开发人员是否使用了人行横道。如果他们使用人行横道(https://github.com/appium/appium/issues/4597已知问题),那么这可能会对您有所帮助https://github.com/ITKarel/ChromeDriver