Macaca win10 环境折腾 macaca 总结记

harsayer · 2016年07月21日 · 最后由 success 回复于 2018年03月20日 · 1231 次阅读

该文为macaca的nodejs版本
macaca java版本 https://github.com/macacajs/wd.java
macaca python版本 https://github.com/macacajs/wd.py

一 安装配置Oracle java

下载地址 http://www.oracle.com/technetwork/java/javase/downloads/index.html
找到合适的java版本下载,我选择的是jdk-8u91-windows-x64.exe。按步骤安装即可。安装路径一般默认。

配置java 环境变量:
JAVA_HOME 变量值为JDK的安装目录,笔者为C:\Program Files\Java\jdk1.8.0_91
PATH PATH变量值后追加 ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
CLASSPATH 变量值为 ;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

检查是否安装成功

C:\Users\cmd>java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b15, mixed mode)

二 安装配置Android SDK

下载地址 http://tools.android-studio.org/index.php/sdk 处下载 android-sdk_r24.4.1-windows.zip
将android-sdk-windows解压到你需要的目录下,笔者是D:\Android\android-sdk-windows

配置android-sdk环境变量:
ANDROID_HOME 变量值为android-sdk的解压目录,笔者为D:\Android\android-sdk-windows
PATH PATH变量值的最后追加 ;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\build-tools;

接下来你便可以用D:\Android\android-sdk-windows 下的SDK Manager.exe下载配置SDK 或AVD Manager.exe 配置 AVD模拟器了。
此处不多讲了,如果你需要测试macaca支持的android应用的话,请先安装配置好某一版本的SDK及其相关工具。

关于Android开发环境的大家可以参考此人的博客

Android SDK Manager和AVD Manager使用

Android开发环境配置

AVD模拟器有些慢,我一般用的都是Genymotion 请参考http://www.iplaysoft.com/genymotion.html 自行安装配置。

三 安装配置nodejs

1 安装nodejsv4.4.7 LTS稳定版

去官网 https://nodejs.org/en/ 下载 v4.4.7 LTS 这个稳定版本,也就是node-v4.4.7-x64.msi 这个。
然后安装到本地 D:\nodejs
刚安装完是这样的版本

C:\Users\cmd>node -v
       v4.4.7
C:\Users\cmd>npm -v
       2.15.8

PS:node 的版本最好就用v4.4.7 LTS 这个稳定版本,其他版本会有问题。
npm 的版本无所谓,你升级到最新的npm 3.10.9 弄macaca也不会有什么问题。

2 添加PATH环境变量

追加到PATH之后便可以了,D:\nodejs;D:\nodejs\node-global

3 nodejs的配置设置

去D:\nodejs\目录下,新建 node-global 和 node-cache。先看下 如果已经有了 就不用再新建了。


C:\Users\cmd>npm config set prefix "D:\nodejs\node-global"
C:\Users\cmd>npm config set cache "D:\nodejs\node-cache"

检查下是否设置成功

C:\Users\cmd>npm config get prefix
     D:\nodejs\node-global
C:\Users\cmd>npm config get cache
      D:\nodejs\node-cache

再检查下安装源,我应该所有的安装源都是 cnpmjs.org,安装源有问题的话

 npm config set  registry http://registry.cnpmjs.org/
C:\Users\cmd>npm config get registry
     http://registry.cnpmjs.org/

PS: 推荐尽量用国内的淘宝镜像源,因为你懂得的原因某些组件需要国外服务器下载,下载会失败导致macaca相关安装失败。
npm config set registry http://registry.npm.taobao.org

4 指定版本安装npm v3.8.7

C:\Users\cmd>npm install npm@3.8.7 -g

安装完检查下npm版本

C:\Users\cmd>npm -v
      3.8.7

PS:npm 的版本无所谓,你升级到最新的npm 3.10.9 弄macaca也不会有什么问题。

5 安装配置apache ant

有的人遇到macaca-android驱动安装问题,最后说是需要安装配置ant,那大家也先安装配置下ant吧。
http://ant.apache.org/bindownload.cgi 下载apache-ant-1.9.7-bin.zip 解压即可
环境变量配置
ANT_HOME D:\apache-ant-1.9.7
CLASSPATH %ANT_HOME%\lib;
PATH %ANT_HOME%\bin;
测试是否安装成功

C:\Users\cmd>ant -version
Apache Ant(TM) version 1.9.7 compiled on April 9 2016

6 需要appium的话可以安装appium

npm -g --registry http://registry.cnpmjs.org  install appium

安装appium的时候,总是会发现 这个组件下载失败 要么checksum失败 。

info SelendroidInstaller Downloading Selendroid standalone server version 0.17.0 from https://github.com/selendroid/selendroid/releases/download/0.17.0/selendroid-standalone-0.17.0-with-dependencies.jar --> D:\nodejs\node-global\node_modules\appium\node_modules\appium-selendroid-driver\node_modules\appium-selendroid-installer\selendroid\download\selendroid-server.jar 无法下载

这时候反复多试几次就可以安装成功的。

最后 我们安装macaca前的版本是这样的:

C:\Users\cmd>node -v
v4.4.7
C:\Users\cmd>npm -v
3.8.7
C:\Users\cmd>appium -v
1.5.3

四 安装配置macaca

C:\Users\cmd>npm i macaca-cli -g

检查下版本和macaca doctor一下

C:\Users\cmd>macaca -v
  1.0.36
C:\Users\cmd>macaca doctor

  Node.js checklist:

  node env: D:\nodejs\node.exe
  node version: v4.4.7

  Android checklist:
  JAVA version is `1.8.0_91`
  JAVA_HOME is set to `C:\Program Files\Java\jdk1.8.0_91`
  ANDROID_HOME is set to `D:\Android\android-sdk-windows`
  Platforms is set to `D:\Android\android-sdk-windows\platforms\android-24`
  Android tools is set to `D:\Android\android-sdk-windows\tools\android.bat`
  ANT_HOME is set to `D:\apache-ant-1.9.7`

五 准备跑样例 macaca-test-sample

https://github.com/macacajs/macaca-test-sample 下载 macaca-test-sample-master.zip 解压到D:\macaca\下

1 执行npm i 为样例项目安装需要的执行环境依赖

切到 D:\macaca\macaca-test-sample-master目录下

C:\Users\cmd>d:
    D:\>cd macaca\macaca-test-sample-master
    D:\macaca\macaca-test-sample-master>npm i

PS:以下是在win10 gitbash 最初安装 npm i 时候的日志输出。我们可以看到npm i 要package.json该文件,所以我们只有到 d:/macaca/macaca-test-sample-master 该目录下有该文件才能执行npm i 。该原理请参考 http://nqdeng.github.io/7-days-nodejs/

cmd@cmd-PC MINGW64 /d/macaca/macaca-test-sample-master/macaca-test
$ cd /d/macaca/
cmd@cmd-PC MINGW64 /d/macaca
$ npm i
npm WARN enoent ENOENT: no such file or directory, open 'D:\macaca\package.json'
npm WARN macaca No description
npm WARN macaca No repository field.
npm WARN macaca No README data
npm WARN macaca No license field.
cmd@cmd-PC MINGW64 /d/macaca
$ cd macaca-test-sample-master/
cmd@cmd-PC MINGW64 /d/macaca/macaca-test-sample-master
$ npm i

以上是弄gitbash时候的日志,实际我们并不需要到gitbash 也就是MINGW64终端下去,我是受到作者指导,因为他大体是在苹果和Linux下去弄的,所以看官方https://macacajs.github.io/macaca/environment-setup.htmlhttps://testerhome.com/topics/node68 这里的一些帖子 发现 有的是按make test-pc 来执行跑用例脚本的。 所以我就弄了gitbash ,实际上win10环境下你并不需要gitbash,只是稍微执行命令上比mac或linux平台下有差异,因为那里利用的是make 命令。
直接win10 cmd命令行下就可以部署运行macaca成功的。当然我遇到的好多坑都简化去掉了,比如 nodejs 作者指导要v4.4.7 版本,直接macaca install chrome 或macaca install android 是根本报好多错的,实际win10下npm i macaca-chrome -g 或 npm i macaca-android -g 才能正常安装。
https://github.com/alibaba/macaca/issues/87
https://github.com/alibaba/macaca/issues/88
这是当初遇到的安装部署问题,大家也可以看下参考下。

2 接着安装 macaca-chrome驱动

D:\macaca\macaca-test-sample-master>npm i macaca-chrome -g

ps:这个驱动在这个目录下安装也行,去C:\Users\cmd> 下执行安装也可以 因为带-g 是global形式的 非local形式的。

3 编辑修改用例脚本

到D:\macaca\macaca-test-sample-master\macaca-test下找到文件 macaca-desktop-sample.test.js
nodepad++打开编辑

找到内容
var wd = require('webdriver-client')({
platformName: 'desktop',
browserName: 'electron'

将 browserName: 'electron' 修改为browserName: 'chrome'

六 执行命令跑用例脚本 macaca-desktop-sample.test.js

脚本内容大家可以自行看下 就是打开百度 搜索testerhome等内容
该脚本对应到苹果和ubuntu16.04 平台下 就是 make test-pc 执行该段脚本。
win10 cmd命令行下

D:\macaca\macaca-test-sample-master\macaca-test>macaca run -d macaca-desktop-sample.test.js --verbose

win10 gitbash下

cmd@cmd-PC MINGW64 /d/macaca/macaca-test-sample-master
$ macaca run -d /d/macaca/macaca-test-sample-master/macaca-test/macaca-desktop-sample.test.js  --verbose

演示录制视频

七 执行命令跑用例脚本macaca-mobile-sample.test.js

该脚本对应到苹果和ubuntu16.04 平台下 就是 make test-android 执行该段脚本。

先去安装下macaca-android驱动

D:\macaca\macaca-test-sample-master>npm i macaca-android -g

PS: 有的人遇到macaca-android驱动安装问题,最后说是需要安装配置ant,那大家也先安装配置下ant吧。
http://ant.apache.org/bindownload.cgi 下载apache-ant-1.9.7-bin.zip 解压即可
环境变量配置
ANT_HOME D:\apache-ant-1.9.7
CLASSPATH %ANT_HOME%\lib;
PATH %ANT_HOME%\bin;
测试是否安装成功

C:\Users\cmd>ant -version
Apache Ant(TM) version 1.9.7 compiled on April 9 2016

下边是安装后输出

D:\macaca\macaca-test-sample-master>npm i macaca-android -g
npm WARN deprecated win-spawn@2.0.0: use [cross-spawn](https://github.com/IndigoUnited/node-cross-spawn) or [cross-spawn-async](https://github.com/IndigoUnited/node-cross-spawn-async) instead.
npm WARN deprecated tough-cookie@2.2.2: ReDoS vulnerability parsing Set-Cookie https://nodesecurity.io/advisories/130
D:\nodejs\node-global
`-- macaca-android@1.0.23

然后启动一个Genymotion虚拟机。
然后查看下是否启动成功

C:\Users\cmd>adb devices -l
List of devices attached
192.168.236.101:5555   device product:vbox86p model:Samsung_Galaxy_S6___5_1_0___API_22___1440x2560 device:vbox86p

好,我们还需要更改下用例脚本macaca-mobile-sample.test.js
打开编辑
找到var platform = process.env.platform || 'ios'; 改为var platform = process.env.platform || 'Android';

好了,准备工作已完成了。

D:\macaca\macaca-test-sample-master\macaca-test>macaca run  -d macaca-mobile-sample.test.js

FAQ

关于大多数的安装问题回复与使用窍门:

  1. 如果你设置了或更改了node-cache目录的话,请找到该路径的地址,该地址是npm 安装命令的缓存目录,安装期间会经常性的遇到下载卡顿或无响应问题。 你可以看npm cache 文件夹,按文件时间倒叙排列,刷新看是否还有新文件下载 ,最近两个文件时间相隔太久了 ,比如都10分钟了都没新文件生成,那八九不离十是卡了 你就ctrl+c 停掉 再反复执行安装命令尝试. 有时候有耐心一点多等会儿.

2 如果npm i 安装命令日志报的是检查、shasum校验、组件包、 什么之类的依赖错误,那基本是缓存不干净
你就 npm cache clean 清理干净 , 还有那个C:\Users\your name\AppData\Local\Temp 目录npm相关都删掉,再反复尝试安装.

3 找个好点的网络环境 要么VPN 要么番羽墙 尽量用国内的淘宝镜像源
npm config set registry http://registry.npm.taobao.org

4 再不行的话就改用cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm i macaca-cli -g

5 关于卡在chromedriver无法下载:
经常看到安装日志中遇到该句 https://chromedriver.storage.googleapis.com/2.30/chromedriver_win32.zip
之后便会报错,基本上都是网络原因导致下载异常,如果可以直接访问该地址并下载说明你可以继续安装.
如果该句处以后,仍旧报错,我们可以设置一个环境变量重定向chromedriver下载地址,方法如下:
windows:
set CHROMEDRIVER_CDNURL=http://npm.taobao.org/mirrors/chromedriver/
Linux或MAC:
export CHROMEDRIVER_CDNURL=http://npm.taobao.org/mirrors/chromedriver/
然后再执行安装命令,您会发现此处的下载链接变成taobao的了

6 关于npm相关的升级,建议你安装npm-check升级工具
npm i npm-check -g
npm-check -u -g 来检查是否有npm组件需要升级

7 关于安装命令提示安装成功,可到执行脚本(前提确认自己脚本没问题)的时候,报uiautomator、chromedriver等macaca依赖组件不存在的问题。
我怀疑还是假性安装成功的问题,实际你macaca环境安装是有问题的。这时候你可以先卸载掉npm uninstall *** -g ,再npm cache clean 清理干净后,再重新尝试安装。

8 哦 还有不要用过高版本的node 你就用LTS4.4.7官方长期支持稳定版本,npm的版本无所谓,笔者遇到过node过高安装的问题,但npm版本升级到最新安装也没问题的。

出现神马奇怪的问题 自己先仔细看日志,然后自己度娘谷歌,只要你会分析问题,搜索的关键词正确总会找到解决问题的蛛丝马迹的。
祝你安装好运

9 补充,有的同学说安装驱动的时候是需要ant的,我因为再安装前已经配置过ant所以没有踩到这个坑,遇到此问题的可以配置下ant.

10 有时候当你连接真机或模拟器的时候,实际执行adb devices -l 如下是有问题的。这时候你跑脚本也是会报些错误的,这时候你就需要分析问题的来源,检查各个执行节点
是否有问题,通常的思路有 是否是自己的脚本书写不对,是否是macaca 驱动问题,是否是macaca server也就是macaca-cli问题,是否是连接的真机或模拟器问题。这样一个
一个节点排查,检查。总会碰到有问题的地方。遇到问题就搜索问题解决方案,解决问题。下边是adb连接的问题。导致脚本和macaca server 在报错但又看不出来是连接设备有问题的。这时候你就需要一级一级排查问题。该问题应该是,到机器端出现了连接问题,实际macaca server 是通过adb 或自家的macaca adb去找到设备的,这段出了问题,server 和脚本端当然就会报错了,但你看日志看不出是哪端的问题,这就需要上述思路来一级一级找问题来源。

C:\Users\cmd>adb devices -l
List of devices attached
* daemon not running. starting it now on port 5037 *
error: could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037: 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。 (10048)
could not read ok from ADB Server
* failed to start daemon *
error: cannot connect to daemon

C:\Users\cmd>adb kill-server
* server not running *

C:\Users\cmd>taskkill /f /im adb.exe
成功: 已终止进程 "adb.exe",其 PID 为 10480。
成功: 已终止进程 "adb.exe",其 PID 为 2740。
成功: 已终止进程 "adb.exe",其 PID 为 14784。
成功: 已终止进程 "adb.exe",其 PID 为 10364。

C:\Users\cmd>adb devices -l
List of devices attached
192.168.236.101:5555   device product:vbox86p model:Samsung_Galaxy_S6___6_0_0___API_23___1440x2560 device:vbox86p

反正你一定要保证,adb devices -l 是如上显示的才算你连接模拟器或真机正常。否则该命令不正常,你就会遇到跑脚本报错或macaca server夯在那不动的问题。

11 解释说明win与类linux环境下执行的差异
实际在这篇有涉及macaca server +Jenkins +STF 自动化环境部署思考 我文章中也明确用了些字眼,项目目录 脚本目录。
比如 为什么要到含有package.json的“”项目目录”下去执行 npm i 实际是受该文件控制的,细心的人士进去看看就明白了,或者自己搜搜nodejs创建部署项目也会了解的。
比如 win环境下,是要到“脚本目录”下去执行macaca run -d *.js 来执行脚本
而类linux环境下,是要到“项目目录”下 就可以执行 make test-android 这些,那是因为项目下有个Makefile文件,项目作者配置了make命令,大家进去看看这个文件就明白了。那么推论,类linux下有两种执行方式,make方式和macaca run的方式 (但请注意执行目录位置)。已经详细说到这儿了 就不用我多解释了吧。多看看项目里有什么,多
搜搜关键词,你就什么都不用问了的。

12 官方样例说明
官方样例已整合至https://github.com/macaca-sample 该文用的是很早的地址下的样例。
目前今日2017年2月14日测试 https://github.com/macaca-sample/desktop-browser-sample-nodejs

https://github.com/macaca-sample/mobile-app-sample-nodejs
存在如下问题,已提交到 https://github.com/macaca-sample/desktop-browser-sample-nodejs/issues/1 请移步至此查看。
在ubuntu或mac系统环境下还是可以正常执行的。
在win环境下npm i 安装mocha依赖有问题,手动安装依赖也无法解决该问题,等待官方修复。
当然你可以非要跑通样例的话,可以参考我issue里的步骤,用webstorm打开该项目,开启macaca server ,webstorm 打开该脚本,右键run 。
这里不会报mocha模块找不到的问题。如图:

已修复请移步关于 win10 环境 Macaca nodejs 样例找不到 mocha 的问题解决说明

更多信息请参考wiki汇总

小马的macaca入门指引合集

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 68 条回复 时间 点赞

不错,代码使用 markdown 的代码格式就更好了~

新手参考


遇到类似问题的话,去清理下你的C:\Users\cmd\AppData\Local\Temp 目录npm相关的。
然后再执行npm cache clean 这时会报一些错,不过实际你的node-cache已经清理干净了,并且还删除掉了node-cache。
你就需要再手动创建文件夹node-cache.貌似不自己主动创建也可以,命令会自动根据你的npm config 自行创建的.

补充:如果网络不好的话,npm install 出来的安装进度指示,看不出是否还再下载了,你可以到你配置的node-cache目录 来观察,看文件创建日期等来看是否有新文件在下载中.

xdf [该话题已被删除] 中提及了此贴 07月21日 16:35
xdf [该话题已被删除] 中提及了此贴 07月21日 16:59


为什么run macaca-desktop-sample.test.js的时候会报错?

npm i macaca-cli -g 要安装很久吗?

#8楼 @jieliu
补充:如果网络不好的话,npm install 出来的安装进度指示,看不出是否还再下载了,你可以到你配置的node-cache目录 来观察,看文件创建日期等信息,来看是否有新文件在下载中.有时候是很慢的,卡住了.停掉命令 再来一遍就行了.最后安装成功会有一坨的日志输出,尤其是那个层级目录树很是醒目.

#7楼 @tt33025515 看日志应该是 样例脚本跑到一半报的 好像是 chromedriver报错了. 这个macaca-chrome 安装成功了吗?
安装后仔细看下日志有没有警告或报错之类的.

#9楼 @harsayer 好的我再尝试尝试,谢谢

win10 跑android的时候报了些错,看了下
Error: Command failed: C:\WINDOWS\system32\cmd.exe /s /c "D:\Android\android-sdk-windows/platform-tools/adb -s 192.168.236.101:5555 pull /data/local/tmp/screenshot.png C:\Users\cmd\AppData\Local\Temp\macaca-android-screenshot116625-7964-l8nsrc.png"

at ChildProcess.exithandler (child_process.js:213:12)
at emitTwo (events.js:87:13)
at ChildProcess.emit (events.js:172:7)
at maybeClose (internal/child_process.js:827:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)

1) #2 should display home

类似的一共有三处,应该是保存路径和win10环境不匹配的问题。

厉害!!

好文 赞一个👍


今天修复了 win10下 macaca doctor 检查命令 驱动检查列显示的bug 。感谢macaca团队。

@harsayer ,安装chrome-driver、ios-driver都是正常,但通过npm i macaca-android -g安装提示

#16楼 @mikezhou 你看下日志已经提示你了. 要不你试试 遇到类似问题的话,去清理下你的C:\Users\yourname\AppData\Local\Temp 目录npm相关的。
然后再执行npm cache clean 然后在执行试试. 详细见4楼的回复.

window7跑android的时候报了错,报错如下:
Error: Command failed: C:\Windows\system32\cmd.exe /s /c "D:\android-sdk-windo
ws/platform-tools/adb -s emulator-5554 push D:\Program Files\nodejs\node-global\
node_modules\macaca-android\node_modules\uiautomator-client\bin\uiautomator-boot
strap.jar /data/local/tmp"
cannot stat 'D:\Program': No such file or directory

at ChildProcess.exithandler (child_process.js:213:12)
at emitTwo (events.js:87:13)
at ChildProcess.emit (events.js:172:7)
at maybeClose (internal/child_process.js:827:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)

@harsayer ,按照你上述和第四步的做法,但还是会报错,

统一回复
你们仔细看下, 就两类问题,
1 服务下载组件卡了,你就去看npm cache 文件夹 倒叙排列 刷新 看是否还有新文件下载 ,最近两个文件时间相隔太久了 ,比如都10分钟了 都没新文件生成,那89不离十是卡了 你就ctrl+c 停掉 再反复尝试. 有时候有耐心一点 多等会儿.

2 如果报的是检查 校验 组件包 什么之类的依赖错误

你就 npm cache clean 清理干净 , 还有那个C:\Users\your name\AppData\Local\Temp 目录npm相关都删掉

再反复尝试

3 找个好点的网络环境 要么VPN 要么番羽墙 尽量用国内的 淘宝镜像源http://registry.npm.taobao.org

4 不行用cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm i macaca-cli -g

我能遇到的都总结给你们了.再出现神马奇怪的问题 自己先判断下仔细看日志.

#17楼 @harsayer hi 问一下 macaca android这边有考虑系统弹出层的情况么 特别是driver没调起来时的情况 appium这点做的不太好

mac 上执行 npm i macaca-android -g也报错,和19楼报错一样,执行过4楼仍报错
ps:已挂vpn,网速很好

.takeScreenshot();截图的路径怎么设置????现在默认路径报错了


这又是为什么呢

装appium 遇见 Not compatible with your operating system or architecture: fsevents@1.0.14,也是醉了

很强大的样子

harsayer [该话题已被删除] 中提及了此贴 08月22日 11:36
haiquan180 [该话题已被删除] 中提及了此贴 08月23日 12:49

一点都看不懂。。。

#16楼 @mikezhou 同样的问题,请问解决了吗


@harsayer 请问安装成功后为什么还说找不到命令啊

#32楼 @zhengzheng 之前的环境变量没生效,已经解决

#33楼 @zhengzheng 我也仍会出现此种提示!

#33楼 @zhengzheng 请问你这个怎么解决的呢?


运行macaca run -d macaca-mobile-sample.test.js的时候报的错,有朋友知道这是什么原因吗?

很厉害的赶脚

harsayer [该话题已被删除] 中提及了此贴 09月23日 09:06
harsayer [该话题已被删除] 中提及了此贴 09月29日 11:44

run 的时候报错,貌似是路径/和\的差别,但是不知道如何解啊,请大神看看

#18楼 @amber_cheng win7跑Android 报错的你如何解的?能否分享一下

harsayer [该话题已被删除] 中提及了此贴 10月10日 10:21

@harsayer 你好,我安装驱动的时候报这样的错误,是什么情况呢?麻烦帮忙看下 哈

D:\macaca-test-sample-master>npm i macaca-chrome -g
npm ERR! Windows_NT 10.0.10586
npm ERR! argv "D:\Program Files (x86)\nodejs\node.exe" "D:\Program Files (x86)\nodejs\node-global\node_modules\npm\bin\npm-cli.js" "i" "macaca-chrome" "-g"
npm ERR! node v4.4.7
npm ERR! npm v3.8.7
npm ERR! path D:\Program Files (x86)\nodejs\node-cache\macaca-chrome\1.0.3\package.tgz.2692764412
npm ERR! code EPERM
npm ERR! errno -4048
npm ERR! syscall rename

npm ERR! Error: EPERM: operation not permitted, rename 'D:\Program Files (x86)\nodejs\node-cache\macaca-chrome\1.0.3\package.tgz.2692764412' -> 'D:\Program Files (x86)\nodejs\node-cache\macaca-chrome\1.0.3\package.tgz'
npm ERR! at Error (native)
npm ERR! { [Error: EPERM: operation not permitted, rename 'D:\Program Files (x86)\nodejs\node-cache\macaca-chrome\1.0.3\package.tgz.2692764412' -> 'D:\Program Files (x86)\nodejs\node-cache\macaca-chrome\1.0.3\package.tgz']
npm ERR! errno: -4048,
npm ERR! code: 'EPERM',
npm ERR! syscall: 'rename',
npm ERR! path: 'D:\Program Files (x86)\nodejs\node-cache\macaca-chrome\1.0.3\package.tgz.2692764412',
npm ERR! dest: 'D:\Program Files (x86)\nodejs\node-cache\macaca-chrome\1.0.3\package.tgz' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Windows_NT 10.0.10586
npm ERR! argv "D:\Program Files (x86)\nodejs\node.exe" "D:\Program Files (x86)\nodejs\node-global\node_modules\npm\bin\npm-cli.js" "i" "macaca-chrome" "-g"
npm ERR! node v4.4.7
npm ERR! npm v3.8.7
npm ERR! path D:\macaca-test-sample-master\npm-debug.log.4109059911
npm ERR! code EPERM
npm ERR! errno -4048
npm ERR! syscall rename

npm ERR! Error: EPERM: operation not permitted, rename 'D:\macaca-test-sample-master\npm-debug.log.4109059911' -> 'D:\macaca-test-sample-master\npm-debug.log'
npm ERR! at Error (native)
npm ERR! { [Error: EPERM: operation not permitted, rename 'D:\macaca-test-sample-master\npm-debug.log.4109059911' -> 'D:\macaca-test-sample-master\npm-debug.log']
npm ERR! errno: -4048,
npm ERR! code: 'EPERM',
npm ERR! syscall: 'rename',
npm ERR! path: 'D:\macaca-test-sample-master\npm-debug.log.4109059911',
npm ERR! dest: 'D:\macaca-test-sample-master\npm-debug.log' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR! D:\macaca-test-sample-master\npm-debug.log

直接给个安装好的压缩包吧,我都是在家下载,u盘拷贝到公司电脑的。

我是 Android Driver 和 Electron Driver 安装不了

执行测试完成了,报告展示呢?

#25楼 @tt33025515 chrome版本问题,请使用50版本

C:\Users\cmd>npm config get registry
http://registry.npm.taobao.org/

C:\Users\cmd>npm i macaca-chrome -g
npm WARN deprecated tough-cookie@2.2.2: ReDoS vulnerability parsing Set-Cookie https://nodesecurity.io/advisories/130

> macaca-chromedriver@1.0.22 install D:\nodejs\node-global\node_modules\macaca-chrome\node_modules\macaca-chromedriver
> node ./bin/macaca-chromedriver install

>> chromedriver cdn url: http://chromedriver.storage.googleapis.com/2.20/chromedriver_win32.zip
>> chromedriver local in D:\nodejs\node-global\node_modules\macaca-chrome\node_modules\macaca-chromedriver\exec\chromedriver.exe
- pako@0.2.9 node_modules\macaca-chrome\node_modules\pako
- jszip@2.5.0 node_modules\macaca-chrome\node_modules\jszip
D:\nodejs\node-global
`-- macaca-chrome@1.0.3
  +-- macaca-chromedriver@1.0.22
  | +-- adm-zip@0.4.7
  | `-- request@2.69.0
  |   +-- aws4@1.5.0
  |   `-- form-data@1.0.1
  |     `-- async@2.1.2
  +-- macaca-utils@0.1.9
  | `-- xutil@1.0.2
  |   `-- rimraf@2.5.4
  |     `-- glob@7.1.1
  |       `-- inflight@1.0.6
  `-- xlogger@1.0.5


C:\Users\cmd>macaca doctor

  macaca-doctor version: 1.0.23


  Node.js checklist:

  node env: D:\nodejs\node.exe
  node version: v4.4.7

  Android checklist:

  JAVA version is `1.8.0_91`
  JAVA_HOME is set to `C:\Program Files\Java\jdk1.8.0_91`
  ANDROID_HOME is set to `D:\Android\android-sdk-windows`
  Platforms is set to `D:\Android\android-sdk-windows\platforms\android-24`
  Android tools is set to `D:\Android\android-sdk-windows\tools\android.bat`
  ADB tool is set to `D:\Android\android-sdk-windows\platform-tools\adb.exe`
  ANT_HOME is set to `D:\apache-ant-1.9.7`

  Installed driver list:

  android: 1.0.39
  chrome: 1.0.3
  electron: 1.1.4

大家还是番羽墙吧 自己看安装日志 chromedriver cdn url: http://chromedriver.storage.googleapis.com/2.20/chromedriver_win32.zip
这地址你懂的 它来自哪里。

harsayer win10 环境 Eclipse macaca java 使用记 中提及了此贴 11月21日 10:47

运行android的时候报这个错。。。

已经解决,是因为在执行npm 安装android时 本地class path没有设置android_home

node.js LTS 版本,官方已从4.4.7 更新为了6.9.1LTS

@harsayer 你好我按照你这边的方法安装了genymotion模拟器,然后adb devices -l的时候弹出的是这个情况
因为我按照你那边的设置adb devices一直没有成功,然后根据百度换了adb的设置方式,改成了用SDK,然后查找连接方式的时候就没有弹出后面device了

然后跑脚本的时候提示错误了,是不是模拟器的连接那边出了问题
脚本错误log

请教这个是什么问题

#18楼 @amber_cheng 问题解决了没

谁碰见这个问题,解决过的朋友能帮忙解答下吗?mocha模块已经安装过

#57楼 @xiaocong168 大兄弟,我解决了首先你在项目的根目录删除node_modules,用cnpm i重新下载一次依赖,然后在当前目录执行macaca run -d ./macaca-test/macaca-desktop-sample.test.js --verbose,不要在macaca-test执行。

#58楼 @sunkuan2007 看来npm i下载的依赖有问题 谢谢哈

Hi ,

I am getting error when running macaca run as showed in the image . Please help me to resolve this

Configured Mocha already

#52楼 @harmo
android也需要配置classpath么

#59楼 @xiaocong168 用用cnpm i重新下载一次什么依赖

有没有人遇到这个问题,@xiaocong168@xiaocong168 ·

#64楼 @15106646321 安装过程用cnpm i 代替 npm i

#65楼 @xiaocong168 这是什么原因呢?配置全局路径也不行呢??


求解,cache clean过了,也重新下载了,但还是报这个错

也遇到同样问题,楼上有解决吗

liming50524 macaca 个人安装问题整理 中提及了此贴 02月07日 18:30

官方样例说明
官方样例已整合至https://github.com/macaca-sample 该文用的是很早的地址下的样例。
目前今日2017年2月14日测试 https://github.com/macaca-sample/desktop-browser-sample-nodejs
https://github.com/macaca-sample/mobile-app-sample-nodejs
存在如下问题,已提交到 https://github.com/macaca-sample/desktop-browser-sample-nodejs/issues/1 请移步至此查看。
在ubuntu或mac系统环境下还是可以正常执行的。
在win环境下npm i 安装mocha依赖有问题,手动安装依赖也无法解决该问题,等待官方修复。

72楼 已删除

棒~ 支持macaca~~

mrleopard npm i macaca-android --save 报错,求助 中提及了此贴 04月24日 19:11

麻烦问一下,win7能用app-inspector吗,安装了一直失败.

好长,马擦擦

harsayer 回复

样例的下载地址报404了,还有什么地方可以下载吗

话说,这边文章该更新了~
比如各种版本最新的支持,以及ANT换Gradle

rogerleo 回复

感觉你解决问题能力很强。来一篇?

rogerleo 回复

这个 由于时间关系 和Macaca的发布调整关系, 我是无法做到与官网调整同步的. 但你可以 关注 那个macaca wiki 系列https://testerhome.com/wiki/macaca
我已经按照 一定的前后因果顺序,排序了. 但都只是一定时间范围和一定环境下的参考而已,最重要的是多查官网上的相关.
还有个人分析和怎么讲"渗透"学习的能力,给你蛛丝马迹 你会善用搜索 关键词 去搜索和学习.
开源的项目的帖子,基本各个作者都有自己的使用目的,和各自的部署环境和组件版本的差异的. 不过,源码工程里都能找到依赖和组件关系的,自己多观察,多看源码相关资源文件吧.

harsayer 回复


安装后 macaca doctor 报这个错误。麻烦看一下是什么问题,谢谢了

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册