Macaca 等待機制





看代碼註釋todo
寫博客


服務寫腳本開吧 , 由於窗口太多,  不知道要去哪關閉服務
開的話無所謂 , 哪裏都能開
要確認是否有開 , 直接跑代碼


下面的要先過


別人的環境






工具軟件本身的問題



不支持面向頁面設計模式 , 更不用說面向組件
沒有任何註解

官方文檔嚴重缺失 , 只給了 API , 沒有更詳細的例子



等待機制 , 好比 等待元素出現 , 這個文檔裏我沒看到 , 有知道這個的嗎 . 相似 waitUntil( 元素定位器  )


阿里開源的
官網
https://macacajs.com/quick-start

官方例子
https://github.com/macacajs/macaca-test-sample

使用例子的步驟
git clone https://github.com/macaca-sample/sample-nodejs.git --depth=1
cd sample-nodejs
npm i
make

參考文章
http://www.cnblogs.com/fnng/p/5873878.html

搭建環境

前提
node版本 6 以上
安裝cnpm , 這樣安裝很快

安裝 macaca-cli 命令行工具
npm install  -g macaca-cli

安裝成功 :
macaca -v
2.0.4

npm install -g   macaca
輸出  macaca@1.0.0


安裝 谷歌瀏覽器 的驅動
cnpm install macaca-chrome -g
成功 :
 

安裝 webdriver-client
cnpm install webdriver-client   -g
成功 :
 

安裝 macaca-electron  可選
cnpm install macaca-electron -g
成功 :
C:\Windows\system32>cnpm install macaca-electron -g
Downloading macaca-electron to C:\Users\zhangqiang\AppData\Roaming\npm\node_modules\macaca-electron_tmp
Copying C:\Users\zhangqiang\AppData\Roaming\npm\node_modules\macaca-electron_tmp\_macaca-electron@1.1.6@macaca-electron to C:\Users\zhangqiang\AppData\Roaming\npm\node_modules\macaca-electron
Installing macaca-electron's dependencies to C:\Users\zhangqiang\AppData\Roaming\npm\node_modules\macaca-electron/node_modules
[1/7] co@^4.6.0 installed at node_modules\_co@4.6.0@co
[2/7] webdriver-dfn-error-code@^1.0.3 installed at node_modules\_webdriver-dfn-error-code@1.0.4@webdriver-dfn-error-code
[3/7] driver-base@^0.1.0 installed at node_modules\_driver-base@0.1.4@driver-base
[4/7] xlogger@^1.0.0 installed at node_modules\_xlogger@1.0.6@xlogger
[5/7] selenium-atoms@~1.0.1 installed at node_modules\_selenium-atoms@1.0.2@selenium-atoms
[6/7] electron-prebuilt@^0.37.6 installed at node_modules\_electron-prebuilt@0.37.8@electron-prebuilt
[7/7] macaca-utils@~0.1.8 installed at node_modules\_macaca-utils@0.1.9@macaca-utils
execute post install 1 scripts...
[1/1] scripts.postinstall electron-prebuilt@^0.37.6 run "node install.js"
Downloading electron-v0.37.8-win32-x64.zip
[============================================>] 100.0% of 49.65 MB (4.84 MB/s)
[1/1] scripts.postinstall electron-prebuilt@^0.37.6 finished in 23s
Recently updated (since 2017-06-19): 3 packages (detail see file C:\Users\zhangqiang\AppData\Roaming\npm\node_modules\macaca-electron\node_modules\.recently_updates.txt)
  2017-06-23
    → electron-prebuilt@0.37.8 › extract-zip@1.6.5 › concat-stream@1.6.0 › readable-stream@2.3.2 › string_decoder@~1.0.0(1.0.3) (02:36:15)
  2017-06-22
    → electron-prebuilt@0.37.8 › extract-zip@1.6.5 › concat-stream@1.6.0 › readable-stream@^2.2.2(2.3.2) (21:48:21)
    → electron-prebuilt@0.37.8 › extract-zip@1.6.5 › concat-stream@1.6.0 › readable-stream@2.3.2 › safe-buffer@~5.1.0(5.1.1) (04:19:28)
All packages installed (166 packages installed from npm registry, used 37s, speed 81.41kB/s, json 183(271.17kB), tarball 2.66MB)


最後檢查全部已經安裝的   macaca doctor
不是  dockor 或  doct e r

2017-11-24 最新截圖 , 新電腦 :




運行


第一個測試代碼

運行前說一下注意事項 : 
1 , 命令在   macaca-test 文件夾的 上一級目錄 運行
2 ,   由於命令只運行當前面目錄下的   macaca-test 文件夾下的全部 .js 文件( 文件名隨意 , 後綴是 .js 就行 ) , 因此本身寫的測試 代碼只能放到  macaca-test 文件夾下 . 
下面是文件放在   macaca-test 文件夾下 , 但在當前文件夾執行 命令 的報錯
 
新的運行方式 :

先把服務運行起來 , 否則會報錯
macaca server
 沒服務的話會報錯 :
 
 
git clone https://github.com/macaca-sample/sample-java.git
到入到IDEA 

運行並看控制檯
 

成功
 


 

問題







最新的環境  2017-07-27
 


彷佛安裝瀏覽器驅動失敗

找不到 macha 框架

 npm install --global mocha
安裝成功後仍是不行
依賴包的路徑是錯的 , 把本身的測試文件 移動到外面一層

在項目路徑裏找不到  webdriver-client

 

分析
雖然我全局安裝了 , 但它只在項目路徑裏找這個

解決方案
再安裝
cnpm install webdriver-client --save-dev
 

macaca run 怎麼指定運行哪一個測試 js 文件

macaca run a.js  無效

無效的文件名
my-desktop.test.js
my-desktop-1.test .js


com.alibaba.fastjson.JSONException: syntax error, pos 1, json : Internal Server Error

主要是看 服務那邊的報錯
Cannot find module 'macaca-android' , 緣由是本地沒有安裝 android的環境
Error: >> session.js:40:14 [master] pid:19012 Error: Cannot find module 'macaca-android'
    at Function.Module._resolveFilename (module.js:536:15)
    at Function.Module._load (module.js:466:25)


java.lang.Exception: An element command could not be completed because the element is not visible on the page.








相關文章
相關標籤/搜索