appium详细总结,书写万字教你避开环境配置坑,看看你是否有未踩过的坑

这里有两个path,你是否配在的上面的path。这里其实问题不大,问题大呢是在cmd命令中,你会发现为什么网上那么多人说python main.py等操作,前面必须要加上python,否则执行不了,就是这个原因。你把环境写在了上面的path。

当你发现你的pip命令用不了,不管用了,那你就更加要找这个原因了,这错误不知道坑了多少小白白。别问博主为啥知道,因为我也踩过。教训啊!!!

安卓环境坑


你是否在网上看到很多篇关于Android SDK的环境,都说要装eclipse、Android studio等,然后配置一大堆的东西,下载一大堆的环境,最后你还发现报错了,不对,下载不了,又疯狂的找原因。

其次就是环境,path变量中,很多朋友都配不对,不是少“ ; ”,就是找符号,有时候吧,还发现明明配置好的环境,cmd输入adb version,发现环境并没有,这时候又是一顿操作。

我的神仙朋友,你配置好了必须重新启动电脑,然后cmd输入adb version,这时候,你只要之前的操作都是对的,这时候一般性都是会有配置信息告诉你配置好了。

为什么我说一般,不是说肯定会有,因为这中间会出现小插曲,那就是第一次配置好的,第二次又没了,或者重启都没用的。这时候你就得看看了是不是Android_home没有配置或填错地方。

其次就是path变量出,是不是又少了符号,出现明明已经配置了环境,然后环境查不到的情况的时候,这时候最简单有效的就是重新配置一下

最后,其实于测试而言,不需要玩那些个操作,只需要下载SDK,然后配置环境变量就好了。用adb命令一查就知道了。Android SDK中自带ADB,所以不需要再次装什么ADB了,切记!

Java环境坑


Java环境其实并没有太大的坑,顶多就是不适配,然后就是Android SDK中提到过的,环境明明配置好了,第二次用的时候环境又没了的情况,这种还是挺烦操的,怎么办呢!还能怎么办,重新配置,最好还是分开来写吧,不然时常发现,至于怎么避免,我也只能说认真检查,认真检查!

值得注意的是Java JDK也是需要home环境的,所以别搞错了。是在系统环境变量里面

这里必须告诉你,bin.,这个点你必须带上,别搞错了,很多时候就是因为不带点导致出了问题,自己也不知道咋回事。

工具使用篇

=====

进入到工具使用篇,那就大有文章了,这里面也设计到了很多的环境坑,需要配置各种环境,最容易出问题的地方也就在环境中,是不是总是配置不好,明明跟着脚步,却还是出了问题,百度也没用具体的答案。这时候你就很无奈,四处加群,问人,最终运气好的解决了,运气不好的,始终没有答案。

uiautomatorviewer


我们先来说说这个工具,这个工具时Android SDK自带的一款定位工具,唯一不足的一点就是有刷新不出想要定位的界面,需要重复刷新。其次就是没切换一个界面后就需要你重新刷新定位,然后就才能开始定位,繁琐这一步,它也是需要以来appium服务,才能跑起来。

它没有xpath定位给你复制,并不是它没用xpath功能,别被网上的说辞误导,你用不用xpath全取决于你自己,即使没用xpath给你复制也丝毫不影响你自己写xpath定位,懂吧,你可以写最简单的xpath就是定位文字。devices.find_element_by_xpath(‘//*[@text=“登录”]’),这样的写法。

inspector


对于这个名字你是不是觉得很陌生,我没讲过这个工具,不过说来也是,我没有提到过这个名字,但是我是有讲的,那就是appium里面自带的工具。

看到这个界面很眼熟了吧,没错,就是这个,它就叫inspector,这个工具好处就是里面自带的工具挺多,不好的一点我也觉得比较让我难受,那就是每次定位完跑代码本来定位的界面会卡住一会,然后提示你断开连接,需要你重新连接它,反反复复就真的很难受了。

好的一点就是他里面的日志还是很明确的,也可以下载下来,这一点必须承认还是挺不错,里面自带的设置也是半个黑科技,总体上还是可以的。

uc-devtools


前面两个配置上倒是没什么大问题,特别时uiautomatorviewer,在配置好Android SDK后完全不需要任何配置,直接打开用,inspector也是下载好appium也是可以用的,毕竟环境早配置好了。

但是这个工具就不一样了,他需要额外的使用两个小玩意。那就是Xposed,webviewdebughook,这两个用上了才能踏上你得小程序,混合app定位的道路。为什么不说可以开启道路了,只能说这是第一步,后面还有驱动配置。

xposed功能:能够继承很多功能模块,这些功能模块能够在不修改APK的情况下, 修改APP的运行方式。

webviewdebughook顾名思义就是开启APP的webview debug模式。

在这就会有很多朋友问我,为什么是神盾XP安装器,跟你们的不一样,你装过就会知道,有些xposed你激活不了,这时候你就需要用到黑科技,神盾Xposed了,一般性用这个都能成功激活,再装入webviewDebugHook插件就能踏入大门了。

uc-devtools这个工具,一看名字就知道uc跟uc浏览器啥关系,你百度就知道。这里面你必须知道的一个

你打开浏览器后,uc会自动抓取,你就会看到有这么一条信息,其中这里告诉你的是:你的模拟器中的浏览器驱动版本是68.0.3440.70,而不是其他的啥啥啥,你也别去看其他的,看了你也是个懵的。

当你跑程序的时候你会发现程序总是会报一个驱动问题,然后说建议下载使用71-75版本的驱动。注:这是我大概的翻译,别误会!

这里你是不是去百度了很多的东西,怎么改,怎么弄,最后你接近答案,改浏览器内核,可是模拟器浏览器内核怎么改,反正据我自己所知,这个一般改不了。所以我们寻求他路,网上会告诉你修改驱动路径,这里我明确的告诉你,出现我上述所说的,改什么驱动路径没啥用。这里我告诉你驱动路径,C:\Users\JX\AppData\Local\Programs\Appium\resources\app\node_modules\appium\node_modules\appium-chromedriver\chromedriver\win\chromedriver.exe,你需要去谷歌驱动的官网去下载一个符合你模拟器或者手机浏览器所对应匹配的版本比如这里说的68.0.3440.70版本的,那么你这个路径下的驱动换成这个版本的即可。

就是这么的直接,别纠结问题怎么了,为哈怎么改都不对。改不了内核,找个匹配的驱动还是简单的。

Airtest


Airtest是网易的一款自动化测试工具,这个给我个人最大的亮点就是依靠鼠标就能简易的跑自动化,还是十分的强大的,里面也有很多的功能,使用起来也是十分的方便,对于Airtest坑倒是没有什么坑,只要你ADB能正常连接设备,这个基本上还是可以成功的,可能就是在使用过程中会遇见一些问题,比如:定位失败的情况,这都是细节操作的问题,Airtest讲究从头开始,不能半道上搞点操作。

uiautomator2


这个工具是由uiautomator演变过来的,至于怎么演变的,那还得问真正的大哥大,它的原理就是在手机上运行了一个http rpc服务,将uiautomator中的功能开放出来,然后再将这些http接口封装成Python库,所以我们需要用到atx,如何装atx,很多朋友遇到过这样的一个问题,python -m uiautomator2 init(从github下载atx-agent文件,并推送到手机。在手机上安装包名为 `com.github.uiautomator`的apk)

这个命令推送不成功,是不是很多朋友都有遇到过,而且百度了很久,没有找到准确答案。这里就告诉你,这里ATX怎么样才能下载。

如果上述所说不行,那就试试这一招。打开pycharm,看你用的什么写的代码,这里我用的pycharm,确保模拟器或者手机连接,adb devices,检查,如何在pycharm里面写:

devices = u2.connect(‘emulator-5554’)

打印设备信息

print(devices.info)

输入代码,连接模拟器的代码,并打印模拟器信息,手机一样的,adb devices查询连接信息,connect后面写上手机的连接号,运行一遍,atx就会自己给你装上了。

这个呢,就有一个非常便捷的方式,那就是可以通过局域网连接手机从未自动化操作,不需要usb数据线了。我前文章正好写了。别错过!

weditor


这个工具是在uiautomator2基础上用的,他们两配合,简直给自己省了不少的代码。之前的工具都需要写一堆的配置参数才行,这个嘛,完全不需要,直接连接就好,并且该定位工具显示的是实时的,更可以通过点击定位工具上的界面引动手机或模拟器的界面,也就是代点击。更有定位方法给你直接复制,此工具绝对是神器。

按键返回,代码复制,元素定位,代点击,你想的这里都有,想不到的这里也有。

附:你是不是有时候导包用的是selenium的库,比如: from selenium  import webdriver

其实是from appium import webdriver,然后你发现为什么appium里面有些方法不能用。

毕竟是辅助定位工具,各有好坏,不要觉得我说这个是神奇就放弃了其他的,这些工具也可以相辅相成,定位嘛,当然多多益善。

定位方法篇

=====

id定位,name定位(text定位),class_name定位, accessibility_id定位,xpath定位等工具不同所以定位起来也大同小异,我们看看下面的操作。

注意:这里的id,name定位方式方法还是有一定的区别的,别一股脑的selenium学过定位,这些一个样的,so easy!!

uiautomatorviewer


这个工具的定位方法需要些很多的配置参数,比如:

desired_capas = {

“deviceName”: “emulator-5554”,

“platformName”: “Android”,

“appPackage”: “com.Qunar”,

“appActivity”: “com.mqunar.atom.alexhome.ui.activity.MainActivity”,

“platformVersion”: “7.1.2”,

“noReset”: “True”

}

然而这个工具它也不支持xpath定位,你在里面复制不了.。

  1. id定位 根据元素的resource-id属性值进行定位

  2. name定位 根据元素的text属性值进行定位 Appium1.5之后移除了这种方式

  3. class_name定位 根据元素的class属性值进行定位

  4. accessibility_id定位 根据元素的content-desc属性值进行定位Android (IOS->label或name属性)

此工具这三种定位方式,根据对应的属性找对应的值即可。

inspector


此工具也就是前面所说的appium里面自带的,而此工具比uiautomatorviewer多了一个定位那就是xpath定位复制,界面中也多了一些按键类型的操作。

其中不管是uiautomatorviewer还是inspector定位工具,他们对于多元素定位都比较的直接,跟selenium库定位方式类似,这种的还是比较的喜欢的。

1. driver.find_elements_by_id()

2. driver.find_elements_by_name()

3. driver.find_elements_by_accessibility_id()

4. driver.find_elements_by_xpath()

它也可以获取文本属性值用于判断,看到这是不是特别的像selenium:

text属性 ele.text 获取元素的文本值

location属性 ele.location 获取元素的坐标

size属性 ele.size 获取元素的大小

tag_name属性 ele.tag_name 获取元素的标签名(元素class属性值)

uc-devtools


混合APP的福音,虽然其他的工具照样的可以定位,但是专门的总是会有一定的优点,这个元素定位最值得注意的还是上下文。

Appium提供了操作context的方法

1. driver.current_context 获取当前界面的context,

2. driver.contexts 获取所有上下文,存储在一个列表中

3. driver.switch_to.context(context)

其中不被理解的就是有些界面不需要切换上下文,即使它是用原生界面到H5界面,这个清安也不能给到朋友解释,只能说你可以先不切换试试,在确定定位方法无误之后你再进行上下文切换。

此定位方法也要依赖appium,所以除开上下文之外,其他的定位与上文没有太大的区别。再就是切换上下文会报错的问题。也就是我上文提到过的建议你用什么什么版本的驱动这一块,也就是上下文会报的错。

Airtest


AirtestIDE 是一个跨平台、多端(Windows、web、android、ios、游戏)的UI自动化测试编辑器,支持 自动化脚本录制、一键回放、报告查看。

它也不需要依赖appium,安装解压就可以用了,方便快捷,里面自带了很多的功能,不比appium自带的少,支持录制,鼠标点击等功能。

poco辅助窗是通过元素本身的属性来定位元素,常用的API如下:

attr(‘type’):提取指定元素属性为type的值

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
img

最后

🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。
🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。
🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。
🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
[外链图片转存中…(img-TwtNkoGq-1711926456184)]

最后

🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。
🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。
🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。
🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值