2015-08-19 3 views
0

Я пытаюсь установить удаленный ПК в качестве узла Selenium, используя консольное приложение, которое будет работать на ПК-концентраторе/сервере.Выполнение команды на удаленном компьютере с использованием PsExec - C#

При запуске программы в режиме отладки, я получаю следующий текст в 'ErrorMessage'

The handle is invalid. 
Connecting to 200.200.20.200:5555... 
Couldn't access 200.200.20.200:5555 
Connecting to 200.200.20.200:5555... 

Сервера имеет PsExec по адресу: D: \ PsTools \ PsExec.exe
Server IP: 100.100.10.100
Remote IP: 200.200.20.200
файл баночки в удаленном компьютере сохраняются на: D: \ селен \ селен-сервер standalone.jar

Команда будет работать в удаленном компьютере является

D:\Selenium>java -jar selenium-server-standalone.jar -role node -hub http://100.100.10.100/grid/register 

, что я здесь отсутствует

private static void StartSeleniumNode() 
     { 
      Process p = new Process(); 
      p.StartInfo.UseShellExecute = false; 
      p.StartInfo.RedirectStandardOutput = true; 
      p.StartInfo.RedirectStandardError = true; 
      p.StartInfo.RedirectStandardInput = true; 
      p.StartInfo.FileName = @"D:\PSTools\PsExec.exe"; 
      p.StartInfo.Arguments = @"\\200.200.20.200:5555 -u xyz -p abc123 -i -w D:\Selenium java -jar selenium-server-standalone.jar -role node -hub http://100.100.10.100:4444/grid/register"; 
      p.Start(); 

      string output = p.StandardOutput.ReadToEnd(); 
      string errormessage = p.StandardError.ReadToEnd(); 

      p.WaitForExit(); 
     } 
+0

Когда я вручную запускать команды для настройки хаба & узлов в соответствующих компьютерах, она работает – Qwerty

ответ

1

Вы должны быть в состоянии собрать это из себя

Вы предоставили нам: p.StartInfo.Arguments = @"\\200.200.20.200"; \\what should go here

У вас есть команда, которую вы хотите запустить

java -jar selenium-server-standalone.jar -role node -hub http://100.100.10.100/grid/register 

Вы знаете компьютер, на котором вы хотите запустить его. У вас есть psexec, чтобы получить параметры того, что вам нужно отправить.

Так что бы что-то вроде

D:\PSTools\PsExec.exe psexec \\remotepc -i -w D:\Selenium java -jar selenium-server-standalone.jar -role node -hub http://100.100.10.100/grid/register 

Попробуйте запустить что из командной строки, и когда вы получите командную строку рабочего. Вы готовы его код (Давайте просто предположим, что работает.)

Ваш код будет затем

p.StartInfo.FileName = @"D:\PSTools\PsExec.exe"; 
p.StartInfo.Arguments = @"\\remotepc -i -w D:\Selenium java -jar selenium-server-standalone.jar -role node -hub http://100.100.10.100/grid/register"; 
+0

Для для полноты использования PsExec хорошо документировано [на странице загрузки в Microsoft] (https://technet.microsoft.com/en-us/sysinternals/bb897553.aspx) –

+1

Да, это так .. хотя psexec is запретили, где я работаю, поэтому я сделал свой собственный: D из C# конечно – BugFinder

+0

Просто попробовал и «errorMessage» говорит Не удалось получить доступ 200.200.20.200 :. Нужно ли передавать учетные данные удаленного компьютера. – Qwerty

Смежные вопросы