C # - Объект процесса не запускается команда cmd - PullRequest
0 голосов
/ 07 февраля 2019

Я использую 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, но не запускает его.Я что-то здесь упускаю?Я думал, что свойство аргументов бы сработало.

1 Ответ

0 голосов
/ 07 февраля 2019

Попробуйте добавить флаг /K или /C к startInfo.Arguments.Это говорит cmd.exe выполнить следующую команду, а затем закрыть (в случае /C) или вернуться к приглашению cmd (в случае /K)

startInfo.Arguments = $"/C WinAppDriver {port}";

https://ss64.com/nt/cmd.html

...