Mac电脑,python+appium+安卓模拟器使用步骤

news2024/10/2 16:15:07

1、第一步,环境搭建,参考这位博主的文章,很齐全
https://blog.csdn.net/qq_44757414/article/details/128142859
我在最后一步安装appium-doctor的时候,提示权限不足,换成sudo appium-doctor即可

2、第二步,安装桌面appium,https://github.com/appium/appium-desktop/releases,下载合适的版本安装即可

3、第三部,安装安卓模拟器,我是M1,找了一圈都没有适配的安卓模拟器,最后在这位博主的文章里找到了合适的,感谢
https://blog.csdn.net/weixin_41677874/article/details/125559161
我遇到一个问题,就是找不到opt目录,这个时候,在终端窗口,将opt目录改成不隐藏即可
sudo chflags nohidden opt

4、第四部,开始运行第一个小程序,启动APP
4.1、需要找到APP的包名和activity名称
首先,把apk文件下载到电脑上
其次,终端窗口,进入apk的目录下执行命令:aapt dump badging rimet_36180121811227.apk
在这里插入图片描述
在这里插入图片描述

4.2、创建一个Python项目
在这里插入图片描述

4.3、输入以下代码

# 导入webdriver
from appium import webdriver
# 初始化参数
desired_caps = {
    'platformName': 'Android',  # 被测手机是安卓
    'platformVersion': '11',  # 手机安卓版本
    'deviceName': 'Android emulator',  # 设备名,安卓手机可以随意填写
    'appPackage': 'com.alibaba.android.rimet',  # 启动APP Package名称
    'appActivity': 'com.alibaba.android.rimet.biz.LaunchHomeActivity',  # 启动Activity名称
    'unicodeKeyboard': True,  # 使用自带输入法,输入中文时填True
    'resetKeyboard': True,  # 执行完程序恢复原来输入法
    'noReset': True,  # 不要重置App,如果为False的话,执行完脚本后,app的数据会清空,比如你原本登录了,执行完脚本后就退出登录了
    'newCommandTimeout': 6000,
    'automationName': 'UiAutomator2'
}
# 连接Appium Server,初始化自动化环境
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)


# 退出程序,记得之前没敲这段报了一个错误 Error: socket hang up 啥啥啥的忘记了,有兴趣可以try one try
#driver.quit()

4.4、启动appium
在这里插入图片描述
在这里插入图片描述

4.5、启动安卓模拟器,检查adb自动连接了安卓模拟器
在这里插入图片描述
4.6、此时运行程序,就会看到模拟器中的钉钉启动啦
在这里插入图片描述
5、查找APP中的元素
5.1、点击appium桌面工具窗口的搜索符号,会跳转到官方地址在这里插入图片描述
在这里插入图片描述


下载合适的版本

5.2、启动appium inspector,填写信息如下图,基本上和代码里是是一样的在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/397581.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Discuz X3.1 QQ互联登陆报错解决方法

安装X3.1后QQ互联登陆出现(1054) Unknown column conuintoken in field list,具体截图如下: 原因是用QQ登陆的时候是把你的账号信息写入数据表common_member_connect中的,而这个语句中有conuintoken 这个字段,但数据表common_mem…

【Java基础】10分钟看懂Java NIO

一、IO概述IO的操作方式通常分为几种:同步阻塞BIO、同步非阻塞NIO、异步非阳塞AIO1、在JDK1.4之前,我们建立网络连接的时候采用的是 BIO 模式。2、Java NIO(New IO或Non Blocking IO) 是从Java 1.4版本开始引入的一个新的IOAPI,可以替代标准的Java IO AP…

跨域问题解决方案

目录 1.同源策略 2.解决方案(后端) (1)在后端方法添加CrossOrigin (2)添加CORS过滤器 (3)实现WebMvcConfigure接口,重写addCorsMappings方法 3.解决方案(前端) (1)前端配置代理 1.同源策略 同源策略(Same origin policy)是一种约定&am…

代码随想录算法训练营day53 | 动态规划之子序列 1143.最长公共子序列 1035.不相交的线 53. 最大子序和

day531143.最长公共子序列1.确定dp数组(dp table)以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp数组1035.不相交的线53. 最大子序和1.确定dp数组(dp table)以及下标的含义2.确定递推公式3.dp数组如何…

【深入理解 线程池】

深入理解 线程池介绍源码学习线程池的类继承体系ThreadPoolExector核心数据结构核心配置参数线程池的执行流程如图:线程池的优雅关闭线程池的生命周期正确关闭线程池的步骤任务的提交过程分析任务的执行过程shutdonw() 与任务执行过程综合分析shutdonwNow() 与任务执…

python3.6 处理报错free(): invalid pointer

在运行脚本的时候遇到了这个报错,我在笔记本的win10 python3.7上正常运行,把程序考到服务器报了这个错,free(): invalid pointer 脚本里写了异常处理,用的是纯净的虚拟环境,所以我感觉问题是出在系统环境上 在网上搜…

Linux:tcp socket客户端和服务器端代码

服务器端代码&#xff1a; #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <string.h> #include <arpa/inet.h> #include <sys/un.h> #include <sy…

手工数据采集耗时耗力?Smartbi数据填报实现数据收集分析自动化

企业在日常经营管理过程中&#xff0c;往往需要收集很多内外部的信息&#xff0c;清洗整理后再进行存储、分析、呈现、决策支持等各种作业&#xff0c;如何高效收集结构化数据是企业管理者经常要面对的问题。传统手工的数据采集方式不仅耗费了大量人力时间成本&#xff0c;还容…

爽,我终于掌握了selenium图片滑块验证码

因为种种原因没能实现愿景的目标&#xff0c;在这里记录一下中间结果&#xff0c;也算是一个收场吧。这篇文章主要是用selenium解决滑块验证码的个别案列。 思路&#xff1a; 用selenium打开浏览器指定网站 将残缺块图片和背景图片下载到本地 对比两张图片的相似地方&#x…

【含源码】用python做游戏有多简单好玩

有很多同学问我还有其他什么小游戏吗&#xff0c;游戏是怎么做的&#xff0c;难不难。我就用两篇文章来介绍一下&#xff0c;如何使用Python做游戏。 兔子与灌 俄罗斯方块 休闲五子棋 走迷宫 推箱子 消消乐 超多小游戏玩转不停↓ 更多小游戏可以评论区讨论哦&#xff0c;喜欢…

C中AES_cbc_encrypt加密对应java中的解密

前言知识&#xff1a; 1.AES&#xff08;Advanced Encryption Standard&#xff09;高级加密标准&#xff0c;作为分组密码&#xff08;把明文分成一组一组的&#xff0c;每组长度相等&#xff0c;每次加密一组数据&#xff0c;直到加密完整个明文&#xff09;。 2.在AES标准…

C#基础教程12 数组

文章目录 C# 数组(Array)C# 中的数组声明数组初始化数组赋值给数组访问数组元素C# 数组细节C# 数组(Array) 数组是一个存储相同类型元素的固定大小的顺序集合。数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合。 声明数组变量并不是声明 number0、number1…

【设计模式】工厂模式

工厂模式 所谓工厂&#xff0c;顾名思义&#xff0c;就是创建出一类相似的产品的&#xff0c;工厂模式可以帮我们创建各个复杂/简单对象。属于创建型模式。 工厂模式分为三类: 简单工厂工厂方法抽象工厂 简单工厂 比方说我们需要根据配置文件去解析配置&#xff0c;不同后…

html5播放器禁止拖拽、视频禁止拖动的实例

阿酷TONY / 2023-3-8 / 长沙html5播放器禁止拖拽功能,常用于场景&#xff1a;企业培训、在线教学内容禁止学员拖动视频进行观看。应用代码实例&#xff1a;<div id"player"></div> <script src"//player.polyv.net/script/player.js">&l…

pytest初识

一、单元测试框架 &#xff08;1&#xff09;什么是单元测试框架&#xff1f; 单元测试是指在软件开发中&#xff0c;针对软件的最小单元&#xff08;函数、方法&#xff09;进行正确性的检查测试 &#xff08;2&#xff09;单元测试框架 java&#xff1a;junit和testng pytho…

Windows SSH 配置和SCP的使用

使用用户界面安装 ssh 功能 要在 Windows 10/11 上启用 SSH 服务器&#xff0c;请按照以下步骤操作&#xff1a; 按“Windows 键 I”打开“设置”菜单&#xff0c;然后选择“应用程序”。在左侧菜单栏中选择“应用和功能”。从列表中选择“可选功能”。 点击“添加功能”按钮…

[数据结构]:15-堆排序(顺序表指针实现形式)(C语言实现)

目录 前言 已完成内容 堆排序实现 01-开发环境 02-文件布局 03-代码 01-主函数 02-头文件 03-PSeqListFunction.cpp 04-SortCommon.cpp 05-SortFunction.cpp 结语 前言 此专栏包含408考研数据结构全部内容&#xff0c;除其中使用到C引用外&#xff0c;全为C语言代码…

android h5考勤管理系统myeclipse开发mysql数据库编程服务端java计算机程序设计

一、源码特点 android h5考勤管理系统是一套完善的WEBandroid设计系统&#xff0c;对理解JSP java&#xff0c;安卓app编程开发语言有帮助&#xff08;系统采用web服务端APP端 综合模式进行设计开发&#xff09;&#xff0c;系统具有完整的源代 码和数据库&#xff0c;系统主…

平板触控笔要原装的吗?开学季必备电容笔推荐

如今对那些把ipad当做学习工具的用户而言&#xff0c;Apple Pencil就显得尤为重要了。但由于Apple Pencil的售价实在太高&#xff0c;让学生党望而却步。因此&#xff0c;最好的办法就是选择平替电容笔。我是一个ipad设备的忠实用户&#xff0c;同时也是一个数码热衷者&#xf…

MySQL增量备份和全量备份

1 全量备份 1.1 创建用于备份的目录 mkdir /root/mysql.backup1.2 创建存入备份文件的目录 mkdir /root/mysql.backup/data1.3 进入备份目录&#xff0c;创建备份脚本 cd /root/mysql.backupvim mysqlBackuoShell.sh#!/bin/bash #保存备份个数,31条 number31 #备份保存路…