Appium问题解答

这里所列的都是我个人在使用Appium遇到的问题,在此记录希望可以帮到一些朋友。
Appium环境配置成功长这样:

Appium环境配置成功.png

未配置成功的各有各的问题


问题一、:WARN AppiumDoctor ✖ Bin directory for $JAVA_HOME is not set.
这个问题困扰了我两天,搜索各个网站无果,求助各个所谓的测试交流群(原来大家都是在里面胡聊)无人帮助回答,无奈翻墙至国外搜寻答案解决问题:
解决办法:You can try setting the .bash_profile as well and you can try to set JAVA_HOME variable like this :
export JAVA_HOME=$(/usr/libexec/java_home)
export PATH=${JAVA_HOME}/bin:$PATH
重启电脑即可。
if not,please try:
export PATH=$PATH:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/bin

To verify that all of Appium's dependencies are met you can use appium-doctor
翻译:为了验证Appium的所有依赖项是否满足,您可以使用Appium - doctor


问题二Message: Parameters were incorrect. We wanted {"required":["value"]} and you sent ["text","sessionId","id","value"]
在执行脚本的时候会报这样一个错误,这个问题是因为selenium版本过高,和1.6.5的Appium不兼容。需要把selenium版本降到3.3.1或者2.53.1就行了。
查看selenium版本方法:在终端进入到Python的命令行状态
>>>import selenium
>>>help(selenium)
输入以上两行命令就可查看当前selenium版本。

更换selenium版本方法:

pip3 uninstall selenium
pip3 install selenium==3.3.1 #注意,==两边没有空格
解释:这里使用pip3而不是pip,是因为我的电脑Xcode里有一个自带的2.7版本,而我又安装了一个3.6版本的。pip3是指卸载了我安装的Python3.6版本的Selenium,而我每次都会使用Python3.6,而不是系统自带的Python2.7.如果使用pip,则改变的是系统自带的selenium。


问题三:HTMLTestRunner.py文件本身报的几个错误
在使用Appium的时候往往我们需要生成直观的测试报告,这时候就需要使用到HTMLTestRunner.py文件(这是官网)。但是这个文件5年前就已经不更新了,那时候用的还是Python2,现在大多已经使用了Python3了,所以就导致了一些问题的产生。目前报错是5处,我们需要对官网提供的这个HTMLTestRunner.py文件做5处修改。网上也可以查到需要修改的地方,但是都不是很准确,这里我提供一个修改之后的,修改之处我都做了注释,可以看到修改前和修改后的区别。


问题四:TypeError: write() argument must be str, not bytes
这个问题我是在使用HTMLTestRunner的时候产生的,原因就是打开文件的方式错误造成的,造成的后果就是生成的测试报告是空的。在打开文件的时候开始的时候(就是没用HTMLTestRunner的时候,记住,是在自己写的执行脚本里,不是在HTMLTestRunner.py文件里)使用的是:open('HTMLReport.html', 'w') as f: 。这时候需要改成:open('HTMLReport.html', 'wb') as f:就可以了。(我也不太清楚原因是什么,网上有说文件打开的方式默认是二进制)

在这里我对Python的open函数做一个解释,如果有不对的地方欢迎指正,在此感谢.
open(路径+文件名,读写模式) #路径名为可选,默认是当前路径
解释读写模式:r(read)只读,r+读写,w(write)新建(会覆盖原有文件),a(append)追加,b(binary)二进制文件
常用模式如:'rb','wb','r+b'等等

读写模式的类型有:
rU或Ua    以读方式打开,同时提供通用换行符支持(PEP 278)
w    以写方式打开
a   以追加模式打开(从EOF开始,必要时创建新文件)
r+  以读写模式打开
w+  以读写模式打开(与a+的区别是该种方式会清空原有内容)
a+  以读写模式打开(参见a)
ab  以二进制追加模式打开(参见a)
rb+  以二进制读写模式打开(参见r+)
wb+ 以二进制读写模式打开(参见w+)
ab+ 以二进制读写模式打开(参见a+)

问题五:Could not connect to lockdownd. Exiting.

解决办法一,提高权限:
sudo chmod -R 777 /usr/local/lockdown/
解决办法二,比较麻烦但是解决较彻底:

brew uninstall ideviceinstaller
brew uninstall libimobiledevice
brew install --HEAD libimobiledevice
brew link --overwrite libimobiledevice
brew install ideviceinstaller
brew link --overwrite ideviceinstaller

问题六、 如何验证Appium环境已经配置成功
首先需要安装appium-doctor,然后再用appium-doctor验证

npm install -g appium-doctor
appium-doctor

问题七、Could not link: /usr/local/share/doc/homebrew
Please delete these paths and run brew update.

这个问题其实严格来说并不是Appium的问题,只是在解决Appium问题的时候会用到Homebrew,在更新brew(brew update)的时候报了这样一个错,原因就是:

Because you have files there already that we don't overwrite automatically in case they are important.

解决办法就是把这个路径delete,然后再update,方法如下:
rm -rf /usr/local/share/doc/homebrew
这是一个非常可怕的命令行,真的很恐怖,简直就是数据终结者,我之所以会写这篇文章就是错误的使用了rm -rf,导致电脑上的数据全部被清空,那种感觉是绝望的,不得已重新配置Appium环境。


问题八、Carthage was NOT found!
这个问题是在你检验Appium配置是否成功的时候出现,解决这个问题比较简单,安装这个Carthage就好了,方法:

brew update
brew install carthage

问题八、code65的错误

屏幕快照 2017-09-18 上午9.38.22.png

这个错误很常见,出现在用真机的时候,原因就是真机上没有安装WDA,只要把WDA装到真机上就可以解决报错。


问题九、未安装ios-deploy的错误

屏幕快照 2017-09-18 上午9.36.10.png

解决这个问题很简单,就按照截图中的报错提示:利用npm安装ios-deploy就好了。
npm install -g ios-deploy


问题十、permission to start activity denied appium

屏幕快照 2017-09-18 下午2.09.32.png

这是在Android真机时发生的错误,别再到处找解决方案了,赶快找Android开发人员吧。让他在项目里改一个属性重新给你打一个包,就是这属性限制了我们的测试:
exported = true这个属性默认是false。


问题十一、ImportError: No module named appium
在运行脚本的时候报这样一个错误,原因是没有安装Appium Python Client,把这个安装上就好了:

pip3 install Appium-Python-Client
如果这条命令报错,请换:
pip3 install --user Appium-Python-Client
如果还报错,就只有最后这个大法了,加sudo,sudo虽好,能不用则不用:
sudo pip3 install --user Appium-Python-Client


问题十二、AttributeError: module 'appium.webdriver' has no attribute 'remote'
用了一段时间,同样的步骤,竟然会有这样的错误,当然了,脚本是录制的。这个原因是录制的脚本中remote应该写成大写开头Remote就可以了。


问题十三、 - Error occurred: ApplicationVerificationFailed
这个是当我们试图通过终端命令ideviceinstaller -i 包的路径把App装到真机上的时候出现的,原因是我们的包是模拟器包,只能在模拟器上安装,需要让开发人员打一个真机包才能使用。


问题十四、命令行npm install -g appium 安装appium报错
明明是按照官网的教程来的,可是这一步就总是出错,是不是很着急?这里有一个巨坑,npm版本如果是最新(5.3.0)的则无法安装,会一直报错,所以需要给npm降低版本:
npm install npm@4 -g
如果这一步出错,那就需要先清除npm缓存:
npm cache clean
如果这一步也出错,那就试试:
npm cache verify
然后再降低版本


问题十五、各个测试环境的搭建
1、The XCUITest Driver(for iOS apps)

2、The UiAutomator2 Driver(for Android apps)

3、The Windows Driver(for Windows Desktop apps)

4、The Mac Driver(for Mac Desktop apps)

5、(BETA)The Espresso Driver(for Android apps)

该问题来自官网文档Getting Started


问题十六、怎么获取 Android 应用的 appPackage 和 appActivity
电脑连接手机,打开 App
adb logcat | grep Displayed

adb logcat | grep ActivityManager
该问题答案来自博客

补充一个iPhone真机的Desired Capabilities截图,希望能够帮助有需要的朋友:

真机Desired Capabilities.png

问题十七、could not connect to server are you sure it's running?

出现这个问题的原因是 Server 选择错了。选的Customer Server, 换Automatic Server。如图:


3278E9E6-11FC-4856-9E61-E61B94CEA8CC.png

问题十八、An unknown server-side error occurred while processing the command. Original error: Could not install app: 'Command 'ios-deploy --id a1d83b4118076a91c432a49b123d7e40e7302332 --bundle /Users/guxuecheng/Desktop/sample-code/sample-code/apps/TestApp/build/Release-iphonesimulator/TestApp-iphonesimulator.app' exited with code 253'

报这个错的原因是因为测试用的安装包只能安装到模拟器上,如果试图安装到真机上就会报这个错误。


问题十九、执行 Python 脚本如何选择 Python 版本
这个问题一般出现在 Mac 上,因为系统自带 Python2,而我们往往会再安装一个 Python3.这样在执行脚本的时候总是会默认使用 Python2,有时会导致脚本无法通过。只需要在脚本的头部加一行代码就可以了:
# !/usr/bin/python3
。在实际使用当中会报如下错误:

Cannot run program "/System/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6" (in directory "/Users/guxuecheng/Desktop/sample-code/sample-code/examples/python"): error=2, No such file or directory。

如图:


CC1E704D0B23B4F80D016F68287EEA3C.png

问题二十、

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,311评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,339评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,671评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,252评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,253评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,031评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,340评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,973评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,466评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,937评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,039评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,701评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,254评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,259评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,497评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,786评论 2 345

推荐阅读更多精彩内容