Macaca win10 环境折腾 macaca 总结记

老马 · 2016年07月21日 · 最后由 H Chen 回复于 2020年01月19日 · 8767 次阅读

该文为 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 找个好点的网络环境 要么 *** 要么番羽墙 尽量用国内的淘宝镜像源
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 入门指引合集

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

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

新手参考

👍 赞一个

老马 #79 · 2016年07月21日 Author


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

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

达峰的夏天 [该话题已被删除] 中提及了此贴 07月21日 16:35
达峰的夏天 [该话题已被删除] 中提及了此贴 07月21日 16:59


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

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

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

老马 #73 · 2016年07月22日 Author

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

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

老马 #12 · 2016年07月25日 Author

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 环境不匹配的问题。

厉害!!

好文 赞一个👍

老马 #15 · 2016年08月09日 Author


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

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

老马 #66 · 2016年08月11日 Author

#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 ,按照你上述和第四步的做法,但还是会报错,

老马 #63 · 2016年08月11日 Author

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

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

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

再反复尝试

3 找个好点的网络环境 要么 *** 要么番羽墙 尽量用国内的 淘宝镜像源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:已挂 ***,网速很好

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

老马 #24 · 2016年08月12日 Author

#23 楼 @amber_cheng https://github.com/alibaba/macaca/issues/103 是个 bug 你看 API https://macacajs.github.io/macaca-wd/api/#takeScreenshot 没有什么可传递参数。需要 macaca 修复。


这又是为什么呢

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

很强大的样子

老马 [该话题已被删除] 中提及了此贴 08月22日 11:36
拖拉机 [该话题已被删除] 中提及了此贴 08月23日 12:49

一点都看不懂。。。

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


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

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

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

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


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

很厉害的赶脚

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

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

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

老马 [该话题已被删除] 中提及了此贴 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 版本

老马 #34 · 2016年10月27日 Author
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
这地址你懂的 它来自哪里。

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

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

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

老马 #54 · 2016年11月30日 Author

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 执行。

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 过了,也重新下载了,但还是报这个错

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

恛憶 macaca 个人安装问题整理 中提及了此贴 02月07日 18:30
老马 #14 · 2017年02月14日 Author

官方样例说明
官方样例已整合至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 依赖有问题,手动安装依赖也无法解决该问题,等待官方修复。

71楼 已删除

棒~ 支持 macaca~~

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

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

好长,马擦擦

老马 回复

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

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

碎冰之殇 回复

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

老马 #80 · 2018年03月12日 Author
碎冰之殇 回复

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

老马 回复


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

我在前端项目中安装了这个没跑起来,一直报错

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