Appium Python 六:管理应用和Activity
?
管理應用
1. 將當前應用放到后臺
執行之后,應用會被放到后臺特定時間。比如這里就是5秒,5秒過后,應用會重新回到前臺。
driver.background_app(5)官網示例:
driver.background_app(1) sleep(2) el = driver.find_element_by_name('Animation') assertIsNotNone(el)?
2. 檢查應用是否已經安裝
檢查設備目前是否安裝了某個應用,這里檢查的是知乎APP。
這里需要的參數是該應用的包名,下面就是知乎的包名。該方法會返回True 或者 False 。
driver.is_app_installed('com.zhihu.android')?
3. 安裝應用
在設備上安裝某個應用。參數是該應用APK文件的路徑。
driver.install_app('zhihu_521.apk')其實執行的就是:adb install zhihu_521.apk
官網示例:
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. 卸載應用
在設備上卸載某個應用。參數是該應用的包名。
driver.remove_app('com.zhihu.android')其實執行的就是: adb uninstall com.zhihu.android
官網示例:
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 webdriverdesired_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 webdriverdesired_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。
轉載于:https://www.cnblogs.com/miniren/p/7381277.html
總結
以上是生活随笔為你收集整理的Appium Python 六:管理应用和Activity的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中单例的几种写法
- 下一篇: Centos7 虚拟机复制后网卡问题