C# - 进程对象不是 运行 cmd 命令
C# - Process object not running cmd command
我使用 WinAppDriver 是为了 运行 Excel 上的一些测试用例。我正在尝试通过代码启动服务器,这样我就不必在命令行中手动执行它。我有以下代码-
public static void StartWinAppServer(int port) {
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WindowStyle = ProcessWindowStyle.Normal;
startInfo.FileName = "cmd.exe";
startInfo.WorkingDirectory = @"C:\Program Files (x86)\Windows Application Driver\";
startInfo.Arguments = $"WinAppDriver {port}";
process.StartInfo = startInfo;
process.Start();
}
这样叫的-
public static WindowsDriver<WindowsElement> GetWindowsAppDriver (AppName appName) {
string appID = string.Empty;
StartWinAppServer(4723);
switch(appName) {
case AppName.Excel:
appID = @"C:\Program Files\Microsoft Office\root\Office16\Excel.exe";
break;
}
DesiredCapabilities appCapabilities = new DesiredCapabilities();
appCapabilities.SetCapability("app", appID);
return new WindowsDriver<WindowsElement>(new Uri("http://127.0.0.1:4723"), appCapabilities);
}
此代码打开了 CMD,但并未 运行 开启它。我在这里错过了什么吗?我认为参数 属性 可以解决问题。
尝试将 /K
或 /C
标志添加到 startInfo.Arguments
。这告诉 cmd.exe
到 运行 以下命令然后关闭(在 /C
的情况下)或 return 到 cmd 提示符(在 /K
的情况下) )
startInfo.Arguments = $"/C WinAppDriver {port}";
我使用 WinAppDriver 是为了 运行 Excel 上的一些测试用例。我正在尝试通过代码启动服务器,这样我就不必在命令行中手动执行它。我有以下代码-
public static void StartWinAppServer(int port) {
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WindowStyle = ProcessWindowStyle.Normal;
startInfo.FileName = "cmd.exe";
startInfo.WorkingDirectory = @"C:\Program Files (x86)\Windows Application Driver\";
startInfo.Arguments = $"WinAppDriver {port}";
process.StartInfo = startInfo;
process.Start();
}
这样叫的-
public static WindowsDriver<WindowsElement> GetWindowsAppDriver (AppName appName) {
string appID = string.Empty;
StartWinAppServer(4723);
switch(appName) {
case AppName.Excel:
appID = @"C:\Program Files\Microsoft Office\root\Office16\Excel.exe";
break;
}
DesiredCapabilities appCapabilities = new DesiredCapabilities();
appCapabilities.SetCapability("app", appID);
return new WindowsDriver<WindowsElement>(new Uri("http://127.0.0.1:4723"), appCapabilities);
}
此代码打开了 CMD,但并未 运行 开启它。我在这里错过了什么吗?我认为参数 属性 可以解决问题。
尝试将 /K
或 /C
标志添加到 startInfo.Arguments
。这告诉 cmd.exe
到 运行 以下命令然后关闭(在 /C
的情况下)或 return 到 cmd 提示符(在 /K
的情况下) )
startInfo.Arguments = $"/C WinAppDriver {port}";