我使用CasperJS來測試我的webApp,事情是我需要訪問數據庫以自動化測試中的一些必要輸入。如何在PhantomJS/CasperJS的窗口上使用子進程模塊
我正在尋找關於如何從casperJS js腳本中的數據庫中檢索此數據的替代方案,最後我決定使用phantomJS child process module調用groovy腳本來連接數據庫並進行選擇並將結果打印到stdout從CasperJS中獲取它。但是從幻像的樣本中JJ不知道該怎麼做,根據我的樣本,我用spawn
和execFile
做了一些嘗試,沒有運氣。即我嘗試:
var process = require("child_process")
var spawn = process.spawn
var execFile = process.execFile
var child = spawn("groovy", ["script.groovy"])
child.stdout.on("data", function (data) {
console.log("spawnSTDOUT:", JSON.stringify(data))
})
child.stderr.on("data", function (data) {
console.log("spawnSTDERR:", JSON.stringify(data))
})
child.on("exit", function (code) {
console.log("spawnEXIT:", code)
})
這不起作用,不會產生任何輸出。我也直接嘗試直接執行dir
命令,也沒有任何反應。
我也試着用linux,它也不能工作,我也嘗試創建一個簡單的回聲.sh
並沒有什麼...,但是在Linux中,當我嘗試運行ls
命令時,它按預期工作。
我不能使這個在最新幻影js的Windows 10上工作;我嘗試運行'spawn(「cmd.exe」,[「/ k」])',它會引發錯誤,但在錯誤消息中沒有任何用處。有什麼想法嗎? –
@Donbox在'/ k'之後你必須傳遞命令來執行,'/ k'本身沒有任何作用。例如,你可以用spawn(「cmd.exe」,[「/ k」,「dir」])'來列出當前目錄中的文件。此外,如果你運行(鍵'Win' +'R')並且把'cmd/k'簡單地打開一個新的cmd,你可以嘗試我從幻象中說出的東西,而如果你把'cmd/k dir'打開一個新的cmd,執行'dir'命令,顯示文件列表的結果。希望這個澄清你的問題':)' – albciff
問題是'spawn(「cmd.exe」,[「/ k」])'拋出錯誤幻影 –