执行以后,应用会被放到后台特定时间。好比这里就是5秒,5秒事后,应用会从新回到前台。python
driver.background_app(5)
官网示例:android
driver.background_app(1) sleep(2) el = driver.find_element_by_name('Animation') assertIsNotNone(el)
检查设备目前是否安装了某个应用,这里检查的是知乎APP。web
这里须要的参数是该应用的包名,下面就是知乎的包名。该方法会返回True 或者 False 。api
driver.is_app_installed('com.zhihu.android')
在设备上安装某个应用。参数是该应用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'))
在设备上卸载某个应用。参数是该应用的包名。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'))
关闭 desired_caps 定义的应用。
driver.close_app()
启动 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)
实际操做,发现返回的就是该次会话的 session id 。
driver.app_strings
打印出来,相似下面的结果:
<bound method WebDriver.app_strings of <appium.webdriver.webdriver.WebDriver (session="xxxxxxxxxxxxxxxxxxxxxxxxxxx")>>
driver.reset()
官网示例:
el = driver.find_element_by_name('App') el.click() driver.reset() sleep(5) el = driver.find_element_by_name('App') assertIsNotNone(el)
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
在当前应用中打开一个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。