• 【python+appium】小程序自动化环境搭建(手动滑稽)


    序言

    appium不是什么新东西了,搭环境的教程网上多的是,为什么还要发一篇帖子呢,因为坑实在是太踏马多了,网上很多帖子都已经用不了了。

    一、配置安卓sdk

    其实还需要jdk,jdk没啥好说的,直接跳过吧

    1.下载安卓sdk

    萌新不要听网上说的在https://www.androiddevtools.cn/下载安装sdk,因为我试过不好使,可能是版本问题,我也懒得试验了(大佬忽略)(我很想把这个新版的坑给填上,但是下载实在是太慢了,等不起)
    直接用我的很多年前的老sdk就好了,解压即用https://pan.baidu.com/s/1pfKLwz5iPaRw0mpiTQwJIw?pwd=asdk,密码asdk
    下载好后解压即可

    2.配置环境变量

    新建ANDROID_HOME(复制sdk这个路径,别少复制了)
    在这里插入图片描述
    在path中添加这一行(如果不好使可以分成两行写)
    在这里插入图片描述

    3.验证环境变量

    常规验证方法打开cmd,输入adb(但是没什么卵用,只能说adb好使了,环境变量配好了,但是自动化环境好没好还不知道)
    在这里插入图片描述

    4.连接手机

    打开手机开发者选项,打开usb调试,usb安装,usb调试(安全设置)。然后手机插入电脑,弹出弹窗是否允许usb调试,选择是。如果不小心点错了也没关系,重新关开开发者选项中的usb调试,重新拔插数据线即可再次弹出弹窗
    在这里插入图片描述

    二、安装appium

    1.下载appium客户端

    https://github.com/appium/appium-desktop/releases/tag/v1.22.3-4

    2.安装即可

    (我选的是安装给所有人,应该无所谓吧,防止出问题还是提一嘴)

    3.打开appium

    打开appium点击start,然后点击右上角的放大镜
    在这里插入图片描述

    三、元素定位工具

    1.安装元素定位工具

    点击放大镜后会自动跳转到浏览器
    在这里插入图片描述
    点tags,选择最新版下载即可
    在这里插入图片描述

    在这里插入图片描述

    2.安装即可

    (还是所有人)

    四、定位元素

    1.配置元素定位工具

    (点击笔的图标是编辑,编辑完以后点击右边的保存就能在左侧列表展示了)
    在这里插入图片描述
    设备名:
    在这里插入图片描述
    app包名和启动类:
    手机可以下载一个包名查看器的app,可以查看所有的app的包名和启动类(当然adb命令也可以查看,我感觉麻烦,而且记不住)
    在这里插入图片描述
    写完配置后,点击save as即可保存,方便下次选择
    在这里插入图片描述
    在这里插入图片描述

    2.定位元素

    手机打开要定位的app,点击start(定位元素和运行脚本期间,appium客户端要一直开启)
    在这里插入图片描述

    五、配置python环境

    pip安装appium-python-client和selenium。(没有selenium会根据appium的版本自动安装对应版本的selenium)

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple Appium-python-client
    
    • 1

    默认安装最新版,但是我在公司的电脑就不能用最新版,后来降级了。我在家的电脑就能用最新版,很迷。如果最新版不好使的话就卸载掉最新版然后安装个我这个版本
    在这里插入图片描述

    六、编写代码

    from appium import webdriver
    from selenium.webdriver.common.by import By
    
    desired_caps = {
        'platformName': 'Android',
        'deviceName': 'd68ce457',
        'platformVersion': '11',
        'appPackage': 'com.eg.android.AlipayGphone',
        'appActivity': 'com.eg.android.AlipayGphone.AlipayLogin',
        'automationName': 'UIAutomator2',
        'noReset': 'True'
    }
    driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
    driver.implicitly_wait(20)
    driver.find_element(by=By.XPATH, value='//android.widget.TextView[contains(@text, "我的小程序")]').click()
    driver.find_elements(by=By.ID, value='com.alipay.android.phone.openplatform:id/app_text')[13].click()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    至此移动端自动化的环境搭建完成
    代码的编写就不详细讲解了,因为东西很多,以后专门开个帖子记录一下都有哪些操作。当然,可以搭配unittest之类的框架使用。
    哦对了,为什么说是小程序自动化呢,因为。。。小程序自动化跟app自动化没区别啊哈哈哈哈哈哈哈哈哈,唯一的区别就是,app可以直接启动到app界面开始跑脚本,而小程序自动化,需要进入微信或者支付宝,然后多了个打开小程序的步骤。听说也有根据进程号直接打开小程序的,好像是得提前打开小程序然后拿到进程号吧,感觉没啥必要。还有一个minium可以小程序自动化,好像得要小程序源码,感觉也没啥必要,懒得研究了,有一个能用就行。

  • 相关阅读:
    【LeetCode】55. 跳跃游戏 - Go 语言题解
    【计算机网络】计算机网络概述(湖科大教书匠第一章笔记)
    年轻一代程序员:社牛、不卷、玩开源
    PKI等介绍
    在Qt的点云显示窗口中添加坐标轴C++
    13个Webpack 优化技巧
    Windows10快捷键合集
    什么叫硬编码?如何避免硬编码
    Centos7 Yum安装PHP7.2
    前端实现websocket通信讲解(vue2框架)
  • 原文地址:https://blog.csdn.net/qq_42460470/article/details/126096864