appium详细总结,书写万字教你避开环境配置坑,看看你是否有未踩过的坑_更换局域网后appium(1)

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

四、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

当你发现你的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的值
        get_text(): 提取指定元素的文本内容
        attr(‘text’): 通过给定的属性名检索ui元素的属性。如果属性不存在,则返回none(属性有visible、text、type、pos、size、name等)
        exists():判断指定元素是否在当前屏幕上存在,存在true、不存在false
        click(): 点击事件,可使用click(center)、click([0.5,0.5])、focus([0.5,0.5]).click()来点击控件中心位置
        rclick():右键点击
        double_click():双击操作
        long_click():长按操作
        swipe:滑动事件,如:swipe([0.2, -0.2], duration=1)以45度角滑动,持续1秒钟
        drag:拖拽事件,如:poco(text=‘需要拖动位置’).drag_to(poco(text=‘目标位置’))
        focus (local positioning):局部定位,如:poco(‘控件地址’).focus(‘center’).click()点击控件中间位置
        wait:等待事件,如:poco(‘控件地址’).wait(2).click() 控件出现就点击,最多等待2秒

它里面自带的一些操作与其他的定位工具相比较也是大同小异,还是很容易区分开的。这个工具也是一个不错的神器,不过也请朋友根据自身的情况进行选择。

uiautomator2

为什么我写uiautomator2不是写weditor,因为weditor是配合uiautomator2用的,uiaotomator是一个库,所以你懂的。

值得注意的是:Android SDK内置工具uiautomatorviewer.bat,但是运行uiautomator2的时候,uiautomatorviewer.bat 运行不起来,两者之间冲突太严重。

它的定位方式也与前者不同,让我们一起看看:

定位方式:

ResourceId定位: d(resourceId= “com.smartisanos.clock:id/text_stopwatch”).click()

Text定位 d(text= “秒表”).click()

Description定位 d(description= “…”).click()

ClassName定位 d(className= “android.widget.TextView”).click()

对于这些定位方式,weditor上面还是很明确的。uiautomator2最明显区别的一个点就是坐标定位超级方便,它也可以获取一个值进行判断,比如:d(text= “Settings”).get_text()获取文本值。

uiautomator2最让我有感觉的一点就是连接方便,weditor工具好用,还是比较方便的,启动应用,想启动谁就启动谁d.app_start(“com.example.hello_world” , “.MainActivity”),也可以直接跳到对应的界面。

assert

assert不是什么定位工具,也不是什么库,就是一函数方法,它用处大着呢,看例子:

assert sess.xpath("App").get_text() == "App"

判断xpath定位的元素文本值是不是等于APP,返回TRUE或False

assert sess.app_current()['package'] == package_name

判断取值是否等于对应的值,返回TRUE或False。assert主要用于判断,有点像unittest中的断言操作。这里只是介绍给各位,实际上如何运用,看各位的操作了。

结语

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Appium是一种用于自动化移动应用程序测试的开源工具。要配置Appium环境,您需要完成以下步骤: 1. 安装Node.js:访问Node.js的官方网站(https://nodejs.org/),下载并安装适用于您操作系统的版本。 2. 安装Appium:打开命令行界面,运行以下命令来全局安装Appium: ``` npm install -g appium ``` 3. 安装Appium Doctor:运行以下命令来安装Appium Doctor,它可以帮助您检查Appium的依赖项是否正确安装: ``` npm install -g appium-doctor ``` 4. 检查Appium的依赖项:运行以下命令来检查Appium的依赖项是否正确安装: ``` appium-doctor ``` 如果有任何错误或警告,按照提示解决它们。 5. 安装Appium GUI(可选):如果您希望使用图形用户界面来管理和运行Appium,您可以下载并安装Appium Desktop。访问Appium的官方网站(http://appium.io/),选择适用于您操作系统的版本进行下载和安装。 6. 配置Android环境:如果您计划在Android设备上运行测试,您需要安装Android SDK并配置相关环境变量。您可以按照Android开发者文档(https://developer.android.com/studio)的指南进行操作。 7. 配置iOS环境:如果您计划在iOS设备上运行测试,您需要安装Xcode并配置相关环境。您可以从App Store下载和安装Xcode,并按照Xcode文档(https://developer.apple.com/xcode/)中的指南进行配置。 完成上述步骤后,您就成功配置了Appium环境。您可以使用Appium来编写和运行自动化测试脚本,并在移动设备上执行这些脚本。记得在编写脚本之前,先启动Appium服务器。希望这些信息对您有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值