6600_APP自动化环境搭建

内容分享5天前发布
2 0 0

APP自动化环境搭建

6600_APP自动化环境搭建


自动化程序
是由我们来开发的,实现具体的 手机自动化 功能。因此使用python调用 python客户端库
Appium-Python-Client
实现自动化功能
Appium Server
是 Appium 组织开发的程序,它负责管理手机自动化环境,并且转发 自动化程序的控制指令 给 手机,并且转发 手机给 自动化程序的响应消息。

手机设备为什么能够被自动化


自动化程序
调用客户端库相应的函数,发送点击元素的指令(封装在HTTP消息里)给
AppiumServer

AppiumServer
再转发这个指令给手机上的自动化代理,其中自动化代理程序是由
AppiumServer
进行安装手机上的
自动化代理程序
接收到指令后,调用手机平台的自动化库(UIAutomator框架,Android 4.2以后),执行点击操作,返回点击成功的结果给
AppiumServer

AppiumServer
转发给自动化程序自动化程序了解到本操作成功后,继续后面的自动化流程

00_Appium环境安装

1. appium客户端库安装

https://pypi.org/project/Appium-Python-Client/


pip install Appium-Python-Client

bash
1

python版本与appium库版本关系

6600_APP自动化环境搭建

2. jdk环境安装

3. Android环境安装

安装Android Studio,并开发一个demo,需要的sdk工具包就都会下载好了

然后设置环境变量

6600_APP自动化环境搭建
6600_APP自动化环境搭建

另外在 PATH 变量中补充如下两条


%ANDROID_HOME%	ools
%ANDROID_HOME%platform-tools

bash
12

然后启动 Appium.exe 即可

01_检测APP自动化环境搭建情况

目标APP:B站
版本:8.60.0

使用 https://www.byhy.net/auto/appium/01/ 里面给的代码


"""
目标设备:Mi9 Pro
Android 10
已经安装 bilibili客户端,且已经手动运行一次
"""
from appium import webdriver

from selenium.webdriver.common.by import By
from selenium.common.exceptions import NoSuchElementException
from appium.webdriver.extensions.android.nativekey import AndroidKey
from appium.options.android import UiAutomator2Options

desired_caps = {
  'platformName': 'Android',  # 被测手机是安卓  Android or iOS
  'platformVersion': '10',  # 手机安卓版本,如果是鸿蒙系统,依次尝试 12、11、10 这些版本号
  'deviceName': 'xxx',  # 设备名,安卓手机可以随意填写,苹果需要填写
  'appPackage': 'tv.danmaku.bili',  # APP包名
  'appActivity': '.MainActivityV2',  # 启动Activity名称
  'unicodeKeyboard': True,  # 自动化需要输入中文时填True
  'resetKeyboard': True,  # 执行完程序恢复原来输入法
  'noReset': True,       # True为 不要重置App,是否清除APP全部数据
  'newCommandTimeout': 6000,  # 自动化程序 与 App Server链接超时时间
  'automationName': 'UiAutomator2'
  # 'app': r'd:apkili.apk',
}

def main():
    # 连接Appium Server,初始化自动化环境
    driver = webdriver.Remote('http://localhost:4723/wd/hub',
      options=UiAutomator2Options().load_capabilities(desired_caps))

    # 设置缺省等待时间
    driver.implicitly_wait(5)

    try:

        # 如果有`青少年保护`界面,点击`我知道了`
        iknow = driver.find_element(By.ID, "text3")
        if iknow:
            iknow.click()
    except NoSuchElementException:
        pass
    # 根据id定位搜索位置框,点击
    driver.find_element(By.ID, 'expand_search').click()

    # 根据id定位搜索输入框,点击
    sbox = driver.find_element(By.ID, 'search_src_text')
    sbox.send_keys('白月黑羽')
    # 输入回车键,确定搜索
    driver.press_keycode(AndroidKey.ENTER)

    # 选择(定位)所有视频标题
    eles = driver.find_elements(By.ID, 'title')

    for ele in eles:
        # 打印标题
        print(ele.text)

    input('**** Press to quit..')
    driver.quit()

if __name__ == "__main__":
    main()

python
运行
6600_APP自动化环境搭建123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263

6600_APP自动化环境搭建
目标设备中安装 B站客户端。第一次先手动运行B站客户端进行一些基础设置后,再退出app。之后再运行 代码。

© 版权声明

相关文章

暂无评论

none
暂无评论...