码迷,mamicode.com
首页 > 移动开发 > 详细

Appium Python 六:管理应用和Activity

时间:2017-11-20 13:05:30      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:reset   方法   第一个   打印   会话   示例   包名   isa   cli   

 

管理应用

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 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。

Appium Python 六:管理应用和Activity

标签:reset   方法   第一个   打印   会话   示例   包名   isa   cli   

原文地址:http://www.cnblogs.com/miniren/p/7381277.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!