Appium Python 六:管理应用和Activity

 

管理应用

1. 将当前应用放到后台

执行以后,应用会被放到后台特定时间。好比这里就是5秒,5秒事后,应用会从新回到前台。python

driver.background_app(5)

官网示例:android

driver.background_app(1)
sleep(2)
el = driver.find_element_by_name('Animation')
assertIsNotNone(el)

 

2. 检查应用是否已经安装

检查设备目前是否安装了某个应用,这里检查的是知乎APP。web

这里须要的参数是该应用的包名,下面就是知乎的包名。该方法会返回True 或者 False 。api

driver.is_app_installed('com.zhihu.android')

 

3. 安装应用

在设备上安装某个应用。参数是该应用APK文件的路径。session

driver.install_app('zhihu_521.apk')

其实执行的就是:adb install zhihu_521.apkapp

官网示例:ui

assertFalse(driver.is_app_installed('io.selendroid.testapp'))
driver.install_app('/Users/isaac/code/python-client/test/apps/selendroid-test-app.apk')
assertTrue(driver.is_app_installed('io.selendroid.testapp'))

 

4. 卸载应用

在设备上卸载某个应用。参数是该应用的包名。spa

driver.remove_app('com.zhihu.android')

其实执行的就是: adb uninstall com.zhihu.androidcode

官网示例:orm

assertTrue(driver.is_app_installed('com.example.android.apis'))
driver.remove_app('com.example.android.apis')
assertFalse(driver.is_app_installed('com.example.android.apis'))

 

5. 关闭应用

关闭 desired_caps 定义的应用。

driver.close_app()

 

6. 启动应用

启动 desired_caps 定义的应用。

driver.launch_app()

官网示例:

el = driver.find_element_by_name('Animation')
assertIsNotNone(el)
driver.close_app();

try:
    driver.find_element_by_name('Animation')
except Exception as e:
    pass # should not exist

driver.launch_app()
el = driver.find_element_by_name('Animation')
assertIsNotNone(el)

 

7. 获取应用的字符串

实际操做,发现返回的就是该次会话的 session id 。

driver.app_strings

打印出来,相似下面的结果:

<bound method WebDriver.app_strings of <appium.webdriver.webdriver.WebDriver (session="xxxxxxxxxxxxxxxxxxxxxxxxxxx")>>

 

8. 重置

driver.reset()

官网示例:

el = driver.find_element_by_name('App')
el.click()

driver.reset()
sleep(5)

el = driver.find_element_by_name('App')
assertIsNotNone(el)

 

Activity

1. 获取当前Activity

driver.current_activity

好比下面的程序:

from appium import webdriver

desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '4.2.2'
desired_caps['deviceName'] = 'Android Emulator'
desired_caps['appPackage'] = 'com.zhihu.android'
desired_caps['appActivity'] = 'com.zhihu.android.app.ui.activity.MainActivity'

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

b=driver.current_activity
print(b)

运行结果以下:

.app.ui.activity.MainActivity

 

2. 启动Activity

在当前应用中打开一个Activity ,或者启动一个新应用并打开一个Activity。

这里第一个参数是要启动的Activity的包名,第二个参数是要启动的Activity名。

driver.start_activity('com.example.android.apis', '.Foo')

好比下面的程序:

#coding=utf-8
from appium import webdriver

desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '4.2.2'
desired_caps['deviceName'] = 'Android Emulator'
desired_caps['appPackage'] = 'com.zhihu.android'
desired_caps['appActivity'] = 'com.zhihu.android.app.ui.activity.MainActivity'

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

print(driver.current_activity)

driver.start_activity('com.android.calculator2', '.Calculator')

print(driver.current_activity)

打印结果以下:

.app.ui.activity.MainActivity
.Calculator

能够看到一开始当前Activity仍是 知乎的 Activity,启动计算器的Activity以后,当前Activity就变成计算器的Activity。

相关文章
相关标签/搜索