APPium+Python编写真机移动端自动化脚本

前置条件

完成软件和环境的安装后就可以开始移动端自动化脚本的编写了。

连接设备

手机打开USB调试模式,连接手机。此时去命令窗口查看自己的设备是否已经连接。

APPium+Python编写真机移动端自动化脚本_第1张图片

让后打开Appium Server,进行配置,设置Android与Java的环境地址。

APPium+Python编写真机移动端自动化脚本_第2张图片

启动服务器,即可。

APPium+Python编写真机移动端自动化脚本_第3张图片

脚本编写

初始化设备参数

首先对于手机的参数进行填写,对于要进行测试的APP的信息也进行获取。

import time
from appium import webdriver

# 初始化参数
desired_caps = {
    'platformName': 'Android',  # 被测手机是安卓
    'platformVersion': '11',  # 手机安卓版本
    'deviceName': 'ncaa',  # 设备名,安卓手机可以随意填写
    'appPackage': 'com.cainiao.wireless',  # 启动APP的包名
    'appActivity': '.homepage.view.activity.WelcomeActivity',  # 启动的Activity名称
    'noReset': True,  # 不要重置App,如果为False的话,执行完脚本后,app的数据会清空,比如你原本登录了,执行完脚本后就退出登录了
    'newCommandTimeout': 6000,  # 命令的时间间隔
    'unicodeKeyboard': True,  # 绕过手机键盘操作,unicodeKeyboard是使用unicode编码方式发送字符串,即中文
    'resetKeyboard': True,  # 绕过手机键盘操作,resetKeyboard是将键盘隐藏起来
}

以微信为例,我们在命令窗口中输入该手机的所有的第三方软件,获取手机上所需包名。

APPium+Python编写真机移动端自动化脚本_第4张图片

在获取该APP登录的活动。首先在手机上打开微信,并在CMD中进行操作。从而获取到了微信的包名与登录的活动名。

在这里插入图片描述

# 连接Appium Server,初始化自动化环境
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
time.sleep(5)

之后进行APPium的连接,手机就会自动打开微信了。

操作命令

下一步,我们打开Android UI分析器。获取到了目前手机页面的信息。根据我们的目的,找到自己所需的组件即可。根据其ID我们就可以在上手机上定位它,从而完成我们相要的操作。

APPium+Python编写真机移动端自动化脚本_第5张图片

脚本运行

具体代码与实现效果如下:

import time
from appium import webdriver

# 初始化参数
desired_caps = {
    'platformName': 'Android',  # 被测手机是安卓
    'platformVersion': '11',  # 手机安卓版本
    'deviceName': 'ncaa',  # 设备名,安卓手机可以随意填写
    'appPackage': 'com.tencent.mm',  # 启动APP的包名
    'appActivity': '.ui.LauncherUI',  # 启动的Activity名称
    'noReset': True,  # 不要重置App,如果为False的话,执行完脚本后,app的数据会清空,比如你原本登录了,执行完脚本后就退出登录了
    'newCommandTimeout': 6000,  # 命令的时间间隔
    # 'unicodeKeyboard': True,  # 绕过手机键盘操作,unicodeKeyboard是使用unicode编码方式发送字符串,即中文
    'resetKeyboard': True,  # 绕过手机键盘操作,resetKeyboard是将键盘隐藏起来
}

# 连接Appium Server,初始化自动化环境
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# time.sleep(5)

# 每个操作的等待时间
driver.implicitly_wait(5)

driver.find_element_by_id('com.tencent.mm:id/fzg').click()

driver.find_element_by_id('com.tencent.mm:id/auj').send_keys('川北野生小熊猫')

driver.find_element_by_id('com.tencent.mm:id/ay5').click()

print("      done        ")
time.sleep(600)

driver.quit()

APPium+Python编写真机移动端自动化脚本_第6张图片

你可能感兴趣的:(APPium,python)