gpt4 book ai didi

javascript - 如何在 Windows 上使用 PhantomJS/CasperJS 的子进程模块

转载 作者:可可西里 更新时间:2023-11-01 11:50:19 26 4
gpt4 key购买 nike

我正在使用 CasperJS 来测试我的 webApp,问题是我需要访问一个数据库来自动化我的测试中的一些必要输入。

我正在寻找关于如何在 casperJS js 脚本中从数据库中检索此数据的替代方法,最后我决定使用 phantomJS child process module调用 groovy 脚本来连接数据库并进行选择并将结果打印到标准输出以从 CasperJS 获取它。然而,从 phantomJS 的示例无法实现,基于示例我用 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,但它也不起作用,我也尝试创建一个简单的 echo .sh 什么都没有...,但是在 linux 中,当我尝试运行 ls 命令这次按预期工作。

最佳答案

经过一些尝试,我找到了一种方法来做到这一点。

似乎在 Windows 中,唯一的方法是将 cmd.exe 作为命令传递,并将 groovy script.groovy 作为参数传递。

所以我用

var child = spawn("cmd.exe", ["/k","groovy script.groovy"])

代替:

var child = spawn("groovy", ["script.groovy"])

这种方式在 Windows 上可以正常工作。

我还找到了在 linux 上运行 shell 脚本的方法,它执行 groovy。它类似于 windows 解决方案,而不是调用 .sh 我必须使用 sh命令:

var child = spawn("sh", ["script.sh"])

然后 script.sh 执行 groovy 脚本:

#!/bin/bash
groovy script.groovy

关于javascript - 如何在 Windows 上使用 PhantomJS/CasperJS 的子进程模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31205152/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com