原文: https://mp.weixin.qq.com/s/ohB96u2E-Jv6d_VZttmQZw

今天要分享的是 Appium 简单的案例
前面我们讲到环境搭建和启动参数配置
那么现在就可以开始动手干了

首先需要一个手机驱动对象,驱动对象会帮我们完成手机和脚本之间交互

  1. 导入驱动对象
    from appium import webdriver

  2. 声明手机驱动对象
    声明方法如下:
    driver=webdriver.Remote('http://127.0.0.1:4723/wb/hub,desired_caps')
    前面的 URL 是 appium 服务端地址,可变,后边部分/wb/hub 是固定的,wb 代表 webdriver,desired_caps 是启动参数

  3. 手机启动参数
    请参考: Appium 02 篇 - DesiredCapabilities 启动参数配置

要注意的是如何获取 app 包名 appPackage 和启动名 appActivity?
1.mac/linux 使用:adb shell dumpsys window windows | grep mFocusedApp
2.windows 使用:adb shell dumpsys window windows | findstr mFocusedApp

  1. 脚本内启动其他 app
    driver.start_activity( appPackage,appActivity )

    1. 关闭 app,不会关闭驱动对象 driver.close_app()
    2. 关闭驱动对象,即关闭所有关联的 ap driver.quit()

最后我们来一个参考实例

导包

from appium import webdriver
desired_caps = {'platformName': 'Android', # 系统
# 'platformVersion': '8.0.0', # 版本号
'deviceName': device_name_honor, # 设备号 可以参数化
'appPackage': 'com.tencent.mm', # 包名
'appActivity': '.ui.LauncherUI', # 启动名
'unicodeKeyboard': True, # 允许输入中文
'resetKeyboard': True,
'autoAcceptAlerts': True,

# 默认选择接受弹窗的条款,有些 app 启动的时候,会有一些权限的弹窗
'reuse': 3,
'noReset': True,

每次 appium 对 app 进行操作,为了不保存修改数据和 app 设置的内容而不影响下次使用,需要设置为 true

'automationName': "UiAutomator2",
'chromeOptions':
{'androidProcess': 'com.tencent.mm:tools',
'args': ['--no-sandbox']
}
}

声明手机驱动对象,URL 是 appium 的服务地址,后边的是启动参数,是一个字典类型

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

关闭 app

driver.close_app ()

打开其他 app 软件

driver.start_activity ( 'com.android.contacts', '.activities.DialtactsActivity' )

关闭驱动对象

driver.quit ()

以后还会继续更新 Appium 系列
请大家持续关注!
想要获取 appium 相关教程
公众号回复关键字【appium】
或【资料】获取更多


↙↙↙阅读原文可查看相关链接,并与作者交流