我使用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”])'抛出错误幻影 –