我正在使用Selenium / Maven / testng编写自动测试。
在虚拟机Windows Server 2016 Standard上执行测试。
我想检查任务列表是否正在运行geckodriver。我这样做:
String line;
String pidInfo ="";
Process p =Runtime.getRuntime().exec(System.getenv("windir") +"\\system32\\"+"tasklist.exe");
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = input.readLine()) != null) {
pidInfo+=line;
}
input.close();
if(pidInfo.contains("geckodriver.exe"))
{
// do what you want
}
运行测试后,代码在本地计算机上执行它们。
如何在虚拟机上执行此类检查
答案 0 :(得分:0)
您的问题尚未完全定义。 虚拟机具有操作系统。而且您的查询中缺少此信息。
但是要给您一个大概合适的答案,通常VM是基于Linux的。
您可以在Windows命令行上手动执行以获取正确的路径
where tasklist
这将重新引导您正确的命令路径。如果缺少此命令,请搜索该命令并检查为什么PATH变量中没有该命令(不是标准的Windows安装)
在我的情况下是
C:\Windows\System32\tasklist.exe
您在Linux上执行
ps aux | grep geckodriver
在MAC上,您也可以尝试
ps aux | grep geckodriver
但这也许更好
ps -jef | grep geckodriver
在Linux和MAC执行上获取ps命令的正确完整路径
which ps
希望有帮助
其他点:
您不应手动使用“ \”路径分隔符。我总是会用
File.separator
,它将为您提供正确的操作系统路径字符