Appium

自动化环境搭建

环境搭建需要下载安装不少软件,而且还有不少是国外网站下载的。

为了方便各位朋友,白月黑羽把这些软件 最新的安装包 都放在如下的百度网盘链接中了,请大家自行下载。

链接:https://pan.baidu.com/s/19C9fGmoXne8DgfXhrTB2TQ

提取码:kgwb

安装client编程库

根据原理图, 我们知道自动化程序需要调用客户端库和 Appium Server 进行通信。
因为我们介绍Python语言开发,所以当然是用pip安装,如下

pip install appium-python-client
安装Appium Server

Appium Server 是用 nodejs 运行的,基于js开发出来的。

Appium组织为了方便大家安装使用,制作了一个可执行程序 Appium Desktop,把 nodejs 运行环境、Appium Server 和一些工具 打包在里面了,只需要简单的下载安装就可以了。
可以从 上面给出的百度网盘连接 下载安装: Appium-windows-1.15.1.exe

附加信息: Appium Desktop官方下载,https://github.com/appium/appium-desktop/releases/latest

安装JDK

本教程主要讲解 安卓APP的自动化,必须要安装安卓SDK(后面会讲到),而安卓SDK需要 JDK 环境。
可以从 上面给出的百度网盘连接 下载安装: jdk-8u211-windows-x64.exe
安装好之后,还需要添加一个环境变量 JAVA_HOME ,指定 值 为 jdk安装目录,比如

JAVA_HOME   d:\tools\java\jdk1.8.0_211
安装 Android SDK

对于安卓APP的自动化,Appium Server 是需要 Android SDK的。
因为要用到里面的一些工具,比如 要执行命令设置手机、传送文件、安装应用、查看手机界面等。
可以从 上面给出的百度网盘连接 下载最新的 Android SDK文件包: androidsdk.zip ,并且解压,即可。
系统环境变量,解压完成后,需要 配置一下 添加一个 环境变量 ANDROID_HOME ,设置值为sdk包解压目录,比如 d:\tools\androidsdk
在这里插入图片描述
在这里插入图片描述

另外,还推荐大家配置环境变量 PATH ,加入 adb所在目录, d:\tools\androidsdk\platform-tools
用户环境变量就可以
在这里插入图片描述

注意:是 添加 该目录到环境变量PATH中, !!!不是替换!!! ,否则会导致系统命令都找不到的严重后果,初学者 请对照视频讲解操作。

连接手机

上述的软件环境都准备好以后,要自动化手机APP,需要:
在你运行程序的电脑上 用 USB线 连接上 你的安卓手机
进入 手机设置 -> 关于手机 ,不断点击 版本号 菜单(7次以上),
退出到上级菜单,在开发者模式中,启动USB调试
如果手机连接USB线后,手机界面弹出 类似 如下提示。
在这里插入图片描述
连接好以后,打开命令行窗口, 执行 adb devices -l 命令来列出连接在电脑上的安卓设备。
如果输出 类似如下的内容:
在这里插入图片描述

一个例子,别着急运行,做完以下查看准备
from appium import webdriver
from appium.webdriver.extensions.android.nativekey import AndroidKey

desired_caps = {
  'platformName': 'Android', # 被测手机是安卓
  'platformVersion': '10', # 手机安卓版本
  'deviceName': 'xxx', # 设备名,安卓手机可以随意填写
  'appPackage': 'tv.danmaku.bili', # 启动APP Package名称
  'appActivity': '.MainActivityV2', # 启动Activity名称
  'unicodeKeyboard': True, # 使用自带输入法,输入中文时填True
  'resetKeyboard': True, # 执行完程序恢复原来输入法
  'noReset': True,       # 不要重置App
  'newCommandTimeout': 6000,
  'automationName' : 'UiAutomator2'
  # 'app': r'd:\apk\bili.apk',
}

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

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

# 如果有`青少年保护`界面,点击`我知道了`
iknow = driver.find_elements_by_id("text3")
if iknow:
    iknow.click()

# 根据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()

运行代码前,要先 运行 Appium Desktop
环境变量,是否配好,如果配好可在 Appium 中看到如下界面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

查找 应用 Package 和 Activity,此也是准备工作,将代码中的替换为你查到的

没有apk

如果你应用已经安装在手机上了,可以直接打开手机上该应用,进入到你要操作的界面

# 截取手机屏幕
D:\h_fsh\computerSoftware\android\androidsdk\tools\bin\uiautomatorviewer.bat

在这里插入图片描述

然后执行

adb shell dumpsys activity recents | find "intent={"

会显示如下,最近的 几个 activity 信息,

在这里插入图片描述

# 运行代码,出现以下打印内容
鼻子:我喝饱了!?
猫:让我看看路况,开车!
车入羊口?
看一遍笑一遍
秋高气爽,爽的很~
**** Press to quit..
连点器

连接华为手机步骤

# 1. 设置 => 关于手机 => 连击版本号,进入开发者模式
# 2. 设置 => 系统与更新 => 开发人员选项 => 开启 USB 调试
# 3. 多开启关闭几次,直到弹出下面的图(不是第一次连接),点击确定
# 4. 进入 scrcpy 目录,cmd 命令,输入 adb usb
C:\Users\lenovo\Desktop\scrcpy-win64-v1.19>adb usb
restarting in USB mode
# 5. 输入 adb tcpip 5555, 可以拔掉 usb 数据线了
C:\Users\lenovo\Desktop\scrcpy-win64-v1.19>adb tcpip 5555
restarting in TCP mode port: 5555
# 6. 查看手机 ip 地址,设置 => 关于手机 => 状态信息
# 7. adb connect 手机ip:5555, 多试几次
C:\Users\lenovo\Desktop\scrcpy-win64-v1.19>adb connect 10.58.30.169:5555
already connected to 10.58.30.169:5555
# 8. 如果直接运行 scrcpy.exe 报错,需要设置参数再启动 
默认的scrcpy比特率是8Mbps,这对于Wi-Fi连接来说可能太多了。根据使用情况,降低比特率和分辨率可能是一个很好的折中方案。
scrcpy --bit-rate 2M --max-size 800
# 或者简写
scrcpy -b2M -m800
# 9. 其他常用操作
- 使用命令行选项在启动时镜像时可以关闭设备屏幕,这一点也挺实用
scrcpy --turn-screen-off
scrcpy -S
- 查看已连接设备命令adb devices,显示device则表示已连接,显示offline则离线
D:\Github_Run\scrcpy-win64-v1.10>adb devices
List of devices attached
192.168.0.4:5555        device
描述快捷键
切换全屏模式Alt+f
点击手机电源Alt+p
返回Alt+b
返回到HOMEAlt+h
多任务Alt+s
更多操作长按鼠标左键
显示最佳窗口Alt+g
调节音量Alt+上下键
关闭设备屏幕(保持镜像)Alt+o
将设备剪贴板复制到计算机Ctrl+c
将计算机剪贴板粘贴到设备Ctrl+v

程序

# 1. 实时获取鼠标位置
import pyautogui

# 上一次的位置
lastPos = pyautogui.position()
try:
    while True:
        # 新位置
        newPos = pyautogui.position()
        if lastPos != newPos:
            print(newPos)
            lastPos = newPos
except KeyboardInterrupt:
    print("\nExit.")


# 2. 鼠标连续点击
import pyautogui
import time
pyautogui.moveTo(36, 25)
temp = 1
# 您可以设置 pyautogui.PAUSE 来控制动作之间的延迟持续时间.默认情况下,它设置为 0.1 sec,这就是您每秒获得最多 10 次点击的原因.
pyautogui.PAUSE = 0.0001
while True:
    pyautogui.click()

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值