6-Appium之终端基本操作

1、安装APP

来学第一个API,我们可以
简易写法:直接传递路径

from appium import webdriver
import time

desired_caps = {
  "deviceName": "127.0.0.1:7555",
  "platformName": "Android",
}

driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
# 安装APP
driver.install_app('C:\\AAA\\yingyongbao.apk')
driver.quit()

默认:
Android OS:
(1)默认覆盖安装;
(2)超时时间默认为60000ms;
(3)默认不允许安装测试包(在manifest中标记为test的包);
(4)默认不安装在SDCard中;
(5)安装完成后是否自动授予权限,默认否;

定制化安装用法:

from appium import webdriver

desired_caps = {
  "deviceName": "127.0.0.1:7555",
  "platformName": "Android",
}

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

# 安装APP
driver.install_app(app_path='C:\\AAA\\yingyongbao.apk',
                   replace=False, # 不允许覆盖
                   timeout=10000, # 超时时间为10秒
                   allowTestPackages=True, # 允许测试包
                   useSdcard=False, # 不要安装在Sdcard
                   grantPermissions=False) # 授予权限

driver.quit()

2、判断APP是否安装

from appium import webdriver

desired_caps = {
  "deviceName": "127.0.0.1:7555",
  "platformName": "Android",
}

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

# 判断APP是否安装,传递的参数为包名
res = driver.is_app_installed('com.tencent.android.qqdownloader')
print(res)
driver.quit()

3、启动APP(launch APP)

在设备上启动desired capabilities中指定的应用程序。

from appium import webdriver
from time import sleep

desired_caps = {
  "deviceName": "127.0.0.1:7555",
  "appPackage": "com.android.settings",   # 包名
  "appActivity": "com.android.settings.Settings",  #activity信息
  "platformName": "Android",
}

# 因为前面加了appPackage的信息,这里会自动启动“设置”这个APP
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
# 等待3秒
sleep(3)
# 将APP置于后台运行5秒钟,然后再切回前台
driver.background_app(5)
# 关闭APP
driver.close_app()
sleep(3)
# 重新启动APP
driver.launch_app()
sleep(3)

driver.quit()

4、APP后台运行(background APP)

将应用程序切换到设备的后台运行。
参考上方代码

5、关闭APP(close)

在设备上关闭desired capabilities中指定的且正在运行的应用程序。
参考上方代码

6、重启APP(reset)

重启设备上的当前应用程序。

from appium import webdriver
from time import sleep

desired_caps = {
  "deviceName": "127.0.0.1:7555",
  "appPackage": "com.android.settings",   # 包名
  "appActivity": "com.android.settings.Settings",  #activity信息
  "platformName": "Android",
}

# 因为前面加了appPackage的信息,这里会自动启动“设置”这个APP
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
# 等待3秒
sleep(3)
# 重启APP
driver.reset()
sleep(3)
driver.quit()

7、移除APP(remove)

从设备上删除指定的应用程序,这里移除应用宝APP

from appium import webdriver

desired_caps = {
  "deviceName": "127.0.0.1:7555",
  "platformName": "Android",
}

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

# 卸载APP,参数为包名
driver.remove_app('com.tencent.android.qqdownloader')

driver.quit()

注:
(1)默认不保存APP数据;
(2)默认超时时间为20000ms;

复杂用法:通过参数指定包名,是否保存数据,超时时间

from appium import webdriver

desired_caps = {
  "deviceName": "127.0.0.1:7555",
  "platformName": "Android",
}

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

# 卸载APP,参数为包名
driver.remove_app(app_id='com.tencent.android.qqdownloader',
                  keepData=False,
                  timeout=30000)

driver.quit()

8、激活APP(activate)

如果应用程序没有运行或正在后台运行,则激活该应用程序。

from appium import webdriver
from time import sleep

desired_caps = {
  "deviceName": "127.0.0.1:7555",
  "platformName": "Android",
}

# 因为前面加了appPackage的信息,这里会自动启动“设置”这个APP
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
# 等待3秒
sleep(3)
# 如果应用程序没有运行或正在后台运行,则激活该应用程序
driver.activate_app('com.android.settings')
sleep(3)
driver.quit()

注意,activate_app()和launch_app()有什么区别呢?
(1)前者不针对desired capabilities,需要在括号中传递要启动的APP报名;后者针对desired capabilities中的APP,不需要传递参数;
(2)当使用driver.quit()退出时,activate_app()启动的APP不会关闭;而launch_app()启动的APP会关闭;

9、终止运行APP(terminal APP)

终止正在运行的应用程序

from appium import webdriver
from time import sleep

desired_caps = {
  "deviceName": "127.0.0.1:7555",
  "platformName": "Android",
}

# 因为前面加了appPackage的信息,这里会自动启动“设置”这个APP
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
# 等待3秒
sleep(3)
# 如果应用程序没有运行或正在后台运行,则激活该应用程序
driver.activate_app('com.android.settings')
sleep(3)
# 终止应用程序
driver.terminate_app('com.android.settings')
sleep(3)
driver.quit()

注:
默认超时时间为500ms。可以指定超时时间

driver.terminate_app(app_id='com.android.settings',
                     timeout=600)

10、获取APP状态

获取APP的状态。

from appium import webdriver
from time import sleep

desired_caps = {
  "deviceName": "127.0.0.1:7555",
  "platformName": "Android",
}

# 因为前面加了appPackage的信息,这里会自动启动“设置”这个APP
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
# 等待3秒
sleep(3)
# 如果应用程序没有运行或正在后台运行,则激活该应用程序
driver.activate_app('com.android.settings')
sleep(3)
# 启动状态的APP,app_state=4
status1 = driver.query_app_state('com.android.settings')
print(status1)
driver.terminate_app('com.android.settings')
# 关闭状态的APP,app_state=1
status2 = driver.query_app_state('com.android.settings')
print(status2)

driver.quit()

11、获取APP字符(strings)

从设备返回应用程序字符串。

from appium import webdriver
from time import sleep

# com.tencent.android.qqdownloader/com.tencent.pangu.necessary.NewPhoneActivity
desired_caps = {
  "deviceName": "127.0.0.1:7555",
  "appPackage": "com.tencent.android.qqdownloader",
  "appActivity": "com.tencent.pangu.necessary.NewPhoneActivity",
  "platformName": "Android",
}

# 因为前面加了appPackage的信息,这里会自动启动“设置”这个APP
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
res = driver.app_strings()
print(res)

driver.quit()

注意,desired capabilities中需要指定APP

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页