原标题:51testing:iOS自动化测试的那些干货:关于appium启动报错问题的解决办法

我们在进行iOS Appium自动化测试的时候,会遇到环境配置、兼容使用问题,这里做个总结,以避免后续踩着这些坑。

问题1. 提示no module “appium”

解决:第1步,在终端输入命令

cd /usr/local/bin

pip3 install Appium-Python-Client

因为appium默认装在了python2上

第2步,新建项目时要勾选

Inherit global site-packages和Make available to all projects。

问题2. 获取udid的两种方法

一种方法是iOS手机连接iTunes,查看摘要;另一种方法是打开Xcode,选择add simulator,可以查看到udid。

问题3. 提示Asserti: Message: An unknown server-side error occurred while processing the command.

Original error: Unknown device or simulator UDID: '***'

解决:brew install libimobiledevice –HEAD

如果在执行此命令时提示 /usr/local/share/man/man5 /usr/local/share/man/man7,则需要修改所有者权限,那么需要按如下命令操作:

sudo chown –R cy /usr/local/share/man/man5

sudo chown –R cy /usr/local/share/man/man7

问题4. 修改环境变量,把终端弄挂了;

解决:打开终端,选择Shell->新建命令,输入mkdir disabled_shell_files,运行命令;打开一个新的终端。重复刚才的步骤,然后在弹出的对话框里面输入mv .profile .bash_history .bash_profile .bashrc .inputrc disabled_shell_files,点击运行。再打开一个新的终端,你会看到终端恢复正常了。

问题5. brew update时连接不上github

解决:修改etc/hosts,尾部添加github的ip地址,如192.30.255.112;

可以在http://tool.chinaz.com/dns?type=1&host=github.com&ip= 查询ip地址

问题6. 如何查看app的bundle id

解决: 步骤1.真机连接电脑;步骤2.Xcode->Product->Destination->Add Additional Simulators…,在Devices菜单栏可以看到手机上所有的app bundle id。

问题7. 安装appium-doctor报错

npm install -g appium -doctor

internal/modules/cjs/loader.js:611

throw err;

^

Error: Cannot find module 'semver'

at Function.Module._resolveFilename (internal/modules/cjs/loader.js:609:15)

at Function.Module._load (internal/modules/cjs/loader.js:535:25)

at Module.require (internal/modules/cjs/loader.js:663:17)

at require (internal/modules/cjs/helpers.js:20:18)

at Object. (/usr/local/lib/node_modules/npm/lib/utils/unsupported.js:2:14)

at Module._compile (internal/modules/cjs/loader.js:734:30)

at Object.Module._extensions..js (internal/modules/cjs/loader.js:745:10)

at Module.load (internal/modules/cjs/loader.js:626:32)

at tryModuleLoad (internal/modules/cjs/loader.js:566:12)

at Function.Module._load (internal/modules/cjs/loader.js:558:3)

解决:

brew uninstall node.js

把/usr/local/lib下的node和node_modules文件都删除了

再执行以下代码

sudo rm /usr/local/bin/npm

sudo rm /usr/local/share/man/man1/node.1

sudo rm /usr/local/lib/dtrace/node.d

sudo rm -rf ~/.npm

sudo rm -rf ~/.node-gyp

sudo rm /opt/local/bin/node

sudo rm /opt/local/include/node

sudo rm -rf /opt/local/lib/node_modules

问题8. 启动app,Pycharm运行时提示找不到HTMLtestrunner模块,需要在网上下载py文件,并放到python的site-packages文件下

问题9. Pycharm里from appium时报错,提示找不到appium模块

解决:确保已安装appium模块,pip3 install appium-python-client,然后Pycharm->new project,再在Pycharm->preferences…,project Interpreter选项中,点击+,搜索appium-python-client,下载package;

这时在pycharm里再输入from appium就能自动匹配,不报错了。

问题10. 提示Error running 'xxx': Cannot run program "/Users/xx/PycharmProjects/xxx/venv/bin/python" (in directory "/Users/xx/xxtest/xxx/test_case"): error=2, No such file or directory

解决:

1)只创建project,在prefrence for new project菜单,找到Project Interpreter选项,在地址目录中会提示地址无效,这时点击Add添加按钮,重新定位到python的路径

2)设置之后,再创建项目文件,iostest—xxx—test_case和test_report,在test_case下创建py文件,再执行就不报错了。

问题11. ModuleNotFoundError: No module named 'StringIO'

解决:在HTMLTestRunner.py 中修改import StringIO为from io import StringIO,将python2的写法改为python3的。

问题12.Appium昨天能运行,今天不能启动

解决:最终发现下图所示的sever选错了,正确应为如下所选中的选项

问题13. ios与android不同,定位元素时候,name方法应该为

driver.find_element_by_accessibility_id(‘ ’)

问题14. 运行报错selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Could not create simulator with name 'appiumTest-iPad', device type id 'iPad' and runtime id '12.1'. Reason: 'simct…

解决:需要把在appium desk上的desired_caps中的bundleid添加到py文件里。

问题15. Pycharm上run时报错,提示python interpreter的路径is not empty

解决:在新建new project的窗口中,除了填写项目名称之外,千万别忘记打开第二个选项的右三角,“Project Interpreter:New Virtualenv environment”来设置运行时的编译环境;

如果在创建项目-脚本之后再去设置,会一直报错。

问题16. HTMLTestRunner报错

HTMLTestRunner 是 Python 标准库中unittest 模块的一个扩展。使用它可以生成易于使用的 HTML 测试报告。

首先下载HTMLTestRunner.py文件,然后在Mac终端执行命令python3,接着输入以下命令:

import sys

sys.path

得到下图所示的路径

最后,把下载的文件复制到第2步高亮显示的路径下,那么pycharm中就可以import HTMLTestRunner。

由于python2和python3的写法不同,如果上述还会报错,则需要修改HTMLTestRunner.py文件。

第1步,HTMLTestRunner.py文件中按下面进行修改:

1)python3中模块io取代了StringIO

94行 import StringIO

改为 import io

2)所有和StringIO相关的都要更改

540行 self.outputBuffer = StringIO.StringIO()

改为 self.outputBuffer = io.StringIO()

3)python3没有has_key()方法,所以要更改如下代码

if not rmap.has_key(cls)

改为 if not cls in rmap

4)python3的decode和python2不同,更改

769行 uo = o.decode(‘latin-1’)

改为 uo = e

779行 ue = e.decode(‘latin-1’)

改为 ue = e

5)python3的print()方法和python2也有区别,更改

634行 print>>sys.stderr,’\nTime Elapsed=%s’ %(self.stopTime-self.startTime)

改为 print(sys.stderr,’\nTime Elapsed=%s’ %(self.stopTime-self.startTime))

6)再次运行HTMLTestRunner.py文件就OK了;

第2步,suite.py文件中修改:

由于报错中提及from . import case和from . import util,将这两行所在的代码注释掉,再次运行suite.py文件也OK了

第3步,重新运行testcase.py文件,一份简洁明了的HTML形式的测试报告结果就可见了!

责任编辑:

python运行启动报错解决方法_51testing:iOS自动化测试的那些干货:关于appium启动报错问题的解决办法...相关推荐

  1. Hbuilder 真机运行显示未受信任的解决方法(ios)

    Hbuilder 真机运行显示未受信任的解决方法(ios) 参考文章: (1)Hbuilder 真机运行显示未受信任的解决方法(ios) (2)https://www.cnblogs.com/wenx ...

  2. python程序执行三种方式,Python运行程序的三种方法

    对于python中运行程序的方法,是我们初学时就已经掌握过的了,想必大家会的只是其中的一两种方式. 本篇对程序运行的三种方式进行了整理,分别是:Python的解释器.交互式运行和PyCharm,大家在 ...

  3. steam战地5无法启动解决方法 战地1、5等EA游戏无法启动解决方法

    问题 在steam平台上,想要游玩战地5(或战地1等其他EA游戏)时,点击启动,"开始游戏"变为"停止"后,要么保持,要么又变回"开始游戏" ...

  4. 计算机关机慢怎么解决方法,电脑关机很慢,详细教您win7电脑关机很慢的解决方法...

    电脑的问题千千万万,但是我们人类的智慧却也是永无止尽的.所以这几天网上帖子最多讨论的就是"电脑关机很慢",每个人都在说自己的win7系统的电脑关机巨慢.所以为了解决网上小伙伴们遇到 ...

  5. dvi黑屏解决方法_赛博朋克2077黑梦黑屏怎么办 黑梦BUG全黑模式解决方法

    赛博朋克2077黑梦任务中,许多玩家们会遇到黑屏的情况,屏幕一下子就全黑模式了似得.黑梦黑屏了怎么办?黑梦BUG要怎么解决呢?这就来了解下吧. "能让玩家相信它不是bug的bug,还反向给游 ...

  6. android设备id完美解决方法,安卓获取渠道名渠道id Android获取设备唯一标识的终极解决方法,防止安卓7.0时崩溃问题...

    一,先说获取渠道名(这里以友盟为例) /* * 4.5.1新加渠道名字段,用来传给后台去统计各个渠道下载量 * */ public static String getSource() { //获取渠道 ...

  7. pe和linux一起安装到移动硬盘,解决方法:将分区的移动硬盘放入可启动的WIN PE磁盘中,并安装GHO或ISO原始版本...

    如何在不格式化所有硬盘且不将整个硬盘用作启动盘的情况下制作" Little Horse PE2012"(完整版)的WIN PE: 下载小马PE2012 V2012.8.8的正式版 ...

  8. python浏览器自动化测试仪器_【松勤软件自动化测试】纯干货:基于Python+Selenium2登录163邮箱实例...

    一.业务流程: 1.打开浏览器,自动填写用户名和密码,登录成功后跳转到相应的页面. 2.验证相应页面的url与给定的url是否一致,如果一致则测试通过,如果不一致,则不通过. 3.另外,在执行过程中如 ...

  9. linux故障报错及解决方法

    问题1.Read-only file system 错误与解决方法. 解析:出现这个问题的原因有很多种,可能是文件系统数据块出现不一致导致的,也可能是磁盘故障造成的,主流ext3/ext4文件系统都有 ...

最新文章

  1. [CF816B] Karen and Coffee(前缀和,思维)
  2. OpenCV相机使用的实例(附完整代码)
  3. ROS Kinetic或ROS melodic下安装MoveIt!出现的问题:无法定位软件包 ros-kinetic-moveit-full或ros-melodic-moveit-full
  4. java实现登陆面试题_【Javaweb】笔面试题 ---(1)(示例代码)
  5. 经典重温:《Attention Is All You Need》详解
  6. linux 查看是否安装perl模块
  7. 对PostgreSQL中bufmgr.c 中 bufs_to_lap的初步理解
  8. 电脑打印机print spooler服务总是自动停止的解决方法...
  9. 运维工程师面试题整理——》 IDC机房运维
  10. 湖南学计算机专业单招学校排名,湖南学计算机那个单招学校比较好(湖南民族职业学院)...
  11. NFM--FM的神经网络化尝试
  12. linux基础命令与文件系统(ip a、ls、cat、vim、cd、pwd、hostname、date、reboot、poweroff、echo、touch、rm、mkdir、diff、file)
  13. python统计汉字个数是_python统计中文字符数量的两种方法
  14. 6g运行和8g运行有什么差别
  15. 用Ruby替代Java做rest接口的单元测试!
  16. 51单片机-LED模块-来回流水灯
  17. 网店卖什么产品最好卖?
  18. 贪玩蓝月服务器维护需多少时间,贪玩蓝月手游冠军1804服开服时间表_贪玩蓝月手游新区开服预告_第一手游网手游开服表...
  19. Pandas dataframe 遇到ix报错问题
  20. EasybossT8“走入”阿联酋

热门文章

  1. 美图秀秀美化图片之【智能优化】模块界面设计
  2. 前端模块打包工具都有哪些---kalrry---ing
  3. JSON中net/sf/ezmorph/Morpher
  4. C语言编写程序进行公民身份证信息验证。运行程序输入身份证号码,对所输入的身份证号码进行验证,验证身份证号码的校验位是否正确。如果正确,则输出该身份证的出生年月日。
  5. 【订单页面】测试用例设计
  6. 正泰电表采集 Modbus 数据接入 ThingsCloud 物联网云平台
  7. 【Spring】AOP面向切面编程(Spring4和Spring5区别)
  8. dx dp 和sp 的关系
  9. 【太原seo】seo入门看什么书好_seo入门书籍推荐
  10. 【SPSS】二项分布检验详细操作教程(附案例实战)