IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> Mac os 环境下搭建python+appium环境,附各类自己踩到的坑 -> 正文阅读

[开发测试]Mac os 环境下搭建python+appium环境,附各类自己踩到的坑

Mac os 环境下搭建python+appium环境

一、 Python的安装与环境配置

前往https://www.python.org下载安装最新版本python,安装成功后可在终端输入:python -- version 查看版本是否为安装的版本,若不是则需要前往配置环境变量
  • 配置环境变量
    1)打开Mac自带终端Terminal;
    2)进入当前用户主目录,cd ~;(默认用户目录则不需要)
    3)临时授权,sudo su;
    4)输入系统密码(加锁密码不显示输入);
    5)创建.bash_profile文件,touch .bash_profile(如果存在则不必新建,可直接第六步验证后再选择是否执行此步);
    6)编辑.bash_profile文件,vim .bash_profile;
    7)输入Python安装的路径环境变量命令,保存并退出:
****# Setting PATH for Python 3.9** 
****# The original version is saved in .bash_profile.pysave****** 
PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin:${PATH}" 
export PATH 
alias python="/Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9"

8)配置完成后在终端输入source .bash_profile来更新配置的环境变量
9)再次输入python – version 查看是否为安装版本
踩坑~/.bash_profile 配置的环境变量,重启终端后失效问题
解决方案:
需要重新执行 : $source ~/.bash_profile
或者永久解决:
在~/.zshrc文件最后,增加一行source ~/.bash_profile
如果没有 .zshrc 文件, 在相应目录下 执行 touch .zshrc 创建文件,添加 source ~/.bash_profile

二、node和npm安装

访问nodejs官网,点击蓝色选框区域稳定版,并下载https://nodejs.org/en
在这里插入图片描述

下载后傻瓜式下一步安装就行了,安装完成后打开终端,输入npm -v node -v两个命令,如下图出现版本信息,说明安装成功
在这里插入图片描述

三、安装Homebrew

/bin/zsh -c “$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)”

该地址提供多个国内源地址,选择一个安装即可,我选择了中科大,如图下图:
在这里插入图片描述

查检安装结果:
brew -v

如果能正确打印版本信息,则安装成功!

四、appium安装

1.下载 dmg 包手动安装

官方下载地址:http://appium.io/
下载后傻瓜式下一步安装就行了
踩坑无法打开appium,报错提示无法打开“appium”,因为Apple无法检查其是否包含恶意软件
原因:系统升级至了macOS 10 15及以上
解决方法:在终端输入 sudo xattr -rd com.apple.quarantine /Applications/Appium.app (应用名称)

2.安装appium-doctor

npm install -g appium-doctor
在终端执行appium-doctor --ios指令,可以查看与iOS相关配置是否完整,下图是全部配置都成功,如果有那一项是打叉的,则进行安装就可以了。
在这里插入图片描述

踩坑在安装依赖过程中其余的都可以按照解决方案正常安装,只有在安装opencv4node.js的过程中一直报错,找了很多解决方案都无法解决,最后是由于安装的node.js版本过高,手动降低了当前版本才正常将该依赖安装。
解决方案:
npm install -g n
sudo n 14.17.3(降级版本)
在这里插入图片描述

踩坑安装opencv4node.js命令中已输入sudo还是报权限有问题
解决方案:在后面加上-- unsafe-perm
在这里插入图片描述

踩坑克隆项目时出现报错:SSL_ERROR_SYSCALL in connection to github.com:443
解决方案:分别输入以下命令即可

git config --global --unset http.proxy
git config --global --unset https.proxy

踩坑安装opencv4node.js时出现报错:This is probably not a problem with npm. There is likely additional logging output above.
解决方案:先sudo su 进入超管权限,再输入命令npm i -g opencv4nodejs --ignore-scripts即可正常安装

五、WebDriverAgent的下载配置

  1. 网上都推荐先下载WebDriverAgent:git clone https://github.com/facebook/WebDriverAgent.git,在下面一系列配置完成后将appium自带的WebDriverAgent替换成自行下载并配置完的。但是在我配置完成后,替换WebDriverAgent,使用appium连接真机一直会报错,报错详情见"六、运行Appium-Desktop 下的踩坑",因此个人建议可以直接对appium自带的WebDriverAgent进行修改配置,配置方法相同。(appium自带的WebDriverAgent路径大同小异,本人的路径在:/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/webdriveragent 仅供参考)
  2. 进入下载后的WebDriverAgent文件
  3. 执行 ./Scripts/bootstrap.sh
  4. 直接用Xcode打开WebDriverAgent.xcodepro文件
  5. 配置WebDriverAgentLib和WebDriverAgentRunner的证书
    • 双击该文件,用(默认)Xcode打开,找到如下图所在的三处:
      在这里插入图片描述
      解释如下:
      1、把这个勾勾上
      2、选择一个AppleID(需要开发者账号)
      3、这里默认的是com.facebook.WebDriverAgentLib。BundleID,这是唯一标识符,一定不能和其他人的相同。所以一定要修改,可将facebook修改成任意其他字符。

除了上图1处的bundleid需要修改外,左侧列表中还有多处文件的bundleid需要和这里保持一致,需要手动去进行修改。例:
在这里插入图片描述

6.配置完成后在菜单栏选择目标设备
在这里插入图片描述

7.Scheme选择WebDriverAgentRunner
在这里插入图片描述

  1. 最后运行 Product -> Test,一切正常的话,手机上会出现一个无图标的WebDriverAgent应用,之前没信任过证书的需要先去设置中将证书信任一下,再Test一次即可。
    在这里插入图片描述

  2. 运行成功时,在Xcode控制台可以打印出一个Ip地址和端口
    在这里插入图片描述

  3. 在网址上输入http://(iP地址):(端口号)/status,如果网页显示了一些json格式的数据,说明运行成功。
    在这里插入图片描述

11.如果是自行下载了WebDriverAgent,则需将appium自带的WebDriverAgent替换成下载配置完成的。如果直接修改appium自带的WebDriverAgent则无需替换,可以直接使用Appium-Desktop进行连接

踩坑:Build后报错‘WebDriverAgent.xcodeproj Building for iOS, but the embedded framework ‘YYCache.framework’ was built for iOS + iOS Simulator’
解决方案1:Xcode中, File > Project Settings, 修改Build System 为如下配置:
在这里插入图片描述

解决方案2:通过修改项目配置里面的Validate Workspace为Yes解决
在这里插入图片描述

踩坑Build后报错‘Double-quoted include “HTTPResponse.h” in framework header, expected angle-bracketed instead’
解决方案:选中WebDriverAgent进入到 Build Settings ,然后找到 Quoted Include In Framework Header,然后选 No

踩坑Build后报错’assign’ property of object type may become a dangling reference; consider using 'unsafe_unretained’
解决方案:在报错处将“assign”改为“strong”
在这里插入图片描述

踩坑build后显示成功,但是查看控制台信息存在报错 WebDriverAgentRunner-Runner[1849:82950] -[UITestingUITests internalImplementation]: unrecognized selector sent to instance 0x283250c30
解决方案:
修改 WebDriverAgentLib/Utilities/FBFailureProofTestCase.m 第26行
self.internalImplementation = (_XCTestCaseImplementation *)[FBXCTestCaseImplementationFailureHoldingProxy proxyWithXCTestCaseImplementation:self.internalImplementation];

修改后:
if ([self respondsToSelector:@selector(internalImplementation)]) {
// The internalImplementation API has been removed since Xcode 11.4
self.internalImplementation =
(_XCTestCaseImplementation *)[FBXCTestCaseImplementationFailureHoldingProxy
proxyWithXCTestCaseImplementation:self.internalImplementation];
} else {
self.shouldHaltWhenReceivesControl = NO;
}

六、运行Appium-Desktop

1.运行Appium-Desktop
2.开启start server
3.点击start new session
4.在 Desired Capabilities 中输入相关的参数后点击Start Session
在这里插入图片描述

  • app的bundleId的查看方法:手机连接终端,在终端输入ideviceinstaller -l即可查看到所有已安装app的bundleId

  • xcodeOrgId的查看方法:登录Apple开发者网站:https://developer.apple.com/account(前提AppleID已加入开发者),这里的Team ID就是xcodeOrgId
    在这里插入图片描述

5.运行成功后,会弹出一个控制界面,在该界面中可以控制手机上正在运行的程序
在这里插入图片描述

踩坑运行报错error:‘bundleId’ desired capability not provided。failure: xcodebuild failed with code 65 xcodebuild
使用了网上多种方法均不能有效解决
解决方案:重新安装appium,直接前往appium路径下修改自带的WebDriverAgent文件。appium自带的WebDriverAgent路径大同小异,本人的路径在Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/webdriveragent 仅供参考)

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-05 17:39:53  更:2021-08-05 17:40:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 20:17:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码