Python + Appium 之 APP 自动化测试,坑点汇总!(建议收藏)

一、环境搭建:环境变量不生效

1、第一步,在系统变量里添加变量名为:ANDROID_HOME,值为:D:\android-sdk(此处需修改为本地电脑 android-sdk 的所在路径)

2、第二步,在系统变量里,在已有的Path变量的值里后面添加:D:\android-sdk\build-tools\22.0.1

PS: 记得在前面加上英文分号

3、第三步,重启电脑,切记,如果环境变量配置好了,还在报关于变量未添加的错误,记得一定要重启电脑,都说:重启解百病啊,这里算是见识到了图片

二、运行脚本:真机不断提示需要安装unlock,manager等插件且安装失败

1、在做手机自动化测试过程中,我们是完全没必要去安装这些插件的,想到的方法是跳过这些插件的安装,下面介绍下,我在遇到这种情况下的处理方式:

禁止手机每次启动需要安装unlock,manager等插件

在D:\Appium\node_modules\appium\lib\devices\android\android.js

注释4行代码,注释代码如下:

//this.initUnicode.bind(this) //this.pushSettingsApp.bind(this) //this.pushUnlock.bind(this) //this.unlock.bind(this)

如下图所示:

2、再次运行脚本时,不会再提示需要安装这些插件了。

注意:如果修改上面的 android.js 文件后,保存了还是提示安装插件,这时应该重启appium服务器,然后重新运行脚本,避免修改的文件未及时生效。

三、运行脚本:报错Original error: Permission to start activity denied

解决方法如下:

在 doc 窗口中执行命令:aapt dump badging D:/Apk/app-v3.7.6_docker.apk(或者直接把 apk 拖进命令行)

使用这个命令获取 package 的值和 launchable-activity 的值

运行后的结果中以下两行分别是应用包名 package 和入口 activity 名称

package: name=’com.xxx.android.xx’

launchable-activity: name=’com.xxx.android.xx.view.xxxrActivity’

注:在android sdk目录搜索可以找到aapt.exe,或者当doc窗口提示:aapt不是内部或外部命令时请参看以下解决方法。

四、解决在doc窗口执行aapt命令时,提示:不是内部或外部命令方法

D:\android-sdk\build-tools\22.0.1 将此添加到系统变量中的Path中,此目录下有 aapt.exe,Path添加完成后需要重启 doc 窗口,再执行 aapt 命令,就可以完整的获取到:package 和 launchable-activity 的值

五、对于手动启动 APP 时,没有引导页,脚本启动时有引导页时处理方法

先用脚本启动到引导页后,一直休眠然后用sdk中自带工具 uiautomatorviewer.bat 来定位引导页面获取元素

六、退出登录按钮元素不在当屏的处理方法:先滑动后再用坐标定位

代码如下:

x = self.driver.get_window_size()['width'] y = self.driver.get_window_size()['height'] self.driver.swipe(x / 2, y * 0.8, x / 2, y * 0.2, 200) time.sleep(3) os.popen("adb shell input tap " + str(659.0) + " " + str(1834.0)) self.driver.find_element_by_class_name("android.view.View").click() os.popen("adb shell input tap " + str(945.0) + " " + str(1140.0)) self.driver.find_element_by_id("com.autochina.p2p:id/btn_dialog_action").click() self.driver.quit()

第1步:获取当前手机屏幕的宽和高

第2步:在一定时间内按照相应的比例向上滑动

第3步:使用定位工具定位到元素的坐标点

第4步:根据获取到的元素的属性值,进行点击操作,弹框元素的获取同此方法

最后作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些软件测试的学习资料和我花了3个月整理的软件测试自学全栈,这些资料希望能给你前进的路上带来帮助。

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

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

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

相关文章

【珍藏干货】手把手实现AI Agent的ReAct框架:从零构建智能体闭环系统,代码可直接收藏

文章详细介绍了AI Agent中经典的ReAct框架(Reasoning Acting)的实现方法。通过Python代码,展示了如何构建具备"感知-思考-行动"能力的智能体,包括环境配置、Agent类搭建、工具准备、提示词设计和系统组装。通过计算两只…

Z-Image-Turbo提示词工程:快速掌握商业级图片生成秘诀

Z-Image-Turbo提示词工程:快速掌握商业级图片生成秘诀 作为一名营销人员,你是否遇到过这样的困扰:虽然学会了基本的AI图片生成操作,但产出的图片总是不够专业,无法直接用于商业宣传材料?本文将带你系统学习…

揭秘科哥定制版:如何用预训练模型生成专利级设计图

揭秘科哥定制版:如何用预训练模型生成专利级设计图 作为一名工业设计师,你是否也遇到过这样的困境:脑海中有一个绝妙的产品外观设计,但手绘草图无法精准表达工程细节?或者需要快速验证多个设计方案,却受限于…

leetcode 困难题 862. Shortest Subarray with Sum at Least K 和至少为 K 的最短子数组

Problem: 862. Shortest Subarray with Sum at Least K 和至少为 K 的最短子数组 解题过程 先求出前缀和,然后两个优先队列,一个大顶堆,一个小顶堆,然后遍历整个前缀和数组,若索引错误则pop小堆while(bigger.top().sec…

全网最全robotframework自动化测试环境搭建

一、前言 1、在2019年之前,robotframework-ride的版本一直是1.5.2.1,是2016年1月份的版本,只能安装在python2.7的环境上,导致如果想同时使用robotframework做测试且又需要python3环境编写python代码的小伙伴都需要在操作系统上安…

服务器被攻击后如何快速恢复?数据备份 + 应急响应手册

服务器遭遇攻击后,不少企业陷入“恢复慢、数据丢、二次攻击”的困境,某电商平台曾因DDoS攻击瘫痪6小时,直接损失超500万元,核心原因在于缺乏规范的恢复流程与备份机制。据行业统计,70%的企业服务器被攻击后&#xff0c…

必学!21种智能体设计模式详解,打造高效AI系统的完整工具箱(收藏版)

《21种智能体设计模式详解》系统介绍了AI智能体的核心设计模式,涵盖提示链、路由、规划、工具使用等21种模块化方法。文章阐述了智能体概念、特性及五步执行循环,详细解析各模式价值与关键技术,并总结四大核心能力:任务分解、环境…

Z-Image-Turbo二次开发实战:基于科哥构建版的云端环境一键配置指南

Z-Image-Turbo二次开发实战:基于科哥构建版的云端环境一键配置指南 如果你正在寻找一个已经配置好所有依赖的Z-Image-Turbo二次开发环境,避免本地部署的复杂依赖问题,那么这篇文章正是为你准备的。Z-Image-Turbo作为一款高效的文生图模型&…

一张图理清网络安全知识体系:零基础快速上手的核心概念与框架

文章目录 一、网络安全原理 1.1、主动攻击和被动攻击1.2、安全机制与安全服务 1.2.1 安全机制1.2.2 安全服务 1.3、安全服务与安全机制的关系 二、密码学原理 2.1对称加密算法2.2 非对称加密算法2.3 密码分析2.4密码安全性 三、网络安全应用 3.1消息摘要 哈希 Hash(…

leetcode 863. All Nodes Distance K in Binary Tree 二叉树中所有距离为 K 的结点

Problem: 863. All Nodes Distance K in Binary Tree 二叉树中所有距离为 K 的结点 解题过程 使用图论的,将二叉树变成邻接表图,然后从目标node出发,访问所有的nodes,计算距离的,若是距离k,则放入每个列表 …

避开CUDA地狱:阿里云镜像一键部署图像生成模型的终极方案

避开CUDA地狱:阿里云镜像一键部署图像生成模型的终极方案 作为一名AI爱好者,你是否也经历过在本地部署Stable Diffusion时被CUDA版本冲突折磨得焦头烂额?我曾经花了整整三天时间在驱动安装、环境配置和依赖冲突中挣扎,直到发现了这…

基于ensp模拟器的ipv6下一代校园网搭建与实现(源码+万字报告+讲解)(支持资料、图片参考_相关定制)

摘 要 本文的主要目的是解决和优化校园网的网络问题,改善网络环境,从而提高IPv6的利用率。本文的主要目的是解释与IPv6相关的技术。目前,校园网络中使用IPv4网络。为了实现IPv6的普及,校园网已被优化和配置为双向网络,…

网络安全从入门到精通:体系化梳理核心基础与技术原理脉络

什么是网络安全 采取必要措施,来防范对网络的攻击,侵入,干扰,破坏和非法使用,以及防范一些意外事故,使得网络处于稳定可靠运行的状态,保障网络数据的完整性、保密性、可用性的能力(CIA)。 举例…

周末项目:用云端GPU和预置镜像搭建个人专属的Z-Image-Turbo艺术工坊

周末项目:用云端GPU和预置镜像搭建个人专属的Z-Image-Turbo艺术工坊 如果你是一个对AI艺术创作感兴趣的编程爱好者,但又不想把宝贵的周末时间浪费在复杂的环境配置上,那么Z-Image-Turbo镜像可能是你的理想选择。本文将带你快速搭建一个基于云…

产业落地篇:六大能力维度在主要行业的深度应用图谱

引言:从能力框架到产业价值的贯通地理空间智能与AI搜索技术的真正生命力,在于其解决真实世界产业难题的能力。前文构建的六大核心能力维度,唯有与具体行业场景深度耦合,才能转化为可衡量的经济与社会价值。本文旨在绘制一幅清晰的…

VisionPro案例之物料宽度测量

VisionPro案例之物料宽度测量 计算线段之间的距离:CogDistanceSegmentSegmentTool 创建线段:CogCreateSegmentTool测量宽度

Z-Image-Turbo终极指南:从快速入门到高级调参技巧

Z-Image-Turbo终极指南:从快速入门到高级调参技巧 如果你已经玩过基础版的Stable Diffusion,现在想探索更专业的Z-Image-Turbo模型,但又担心高级功能需要复杂的环境配置和大量显存,那么这篇文章就是为你准备的。Z-Image-Turbo是一…

“卷王”诞生:2025年新晋验证码破解平台性能实测

1. 引言 在当前网络安全与自动化测试的背景下,验证码(CAPTCHA)技术已成为防止恶意机器人攻击和保障网站安全的重要手段。然而,对于自动化测试、数据采集以及持续集成等场景而言,验证码往往成为关键瓶颈,从…

【表盘识别】形态学指针式压力表识别【含GUI Matlab源码 14867期】

💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab武动乾坤博客之家💞…

网络安全核心知识体系:从入门到精通的技能树构建指南

一、前言 提到网络安全,一般人们将它看作是信息安全的一个分支,信息安全是更加广义的一个概念:防止对知识、事实、数据或能力非授权使用、误用、篡改或拒绝使用所采取的措施. 网络安全重磅福利:入门&进阶全套282G学习资源包免费分享&am…