PowerShell, Selenium, Скрыть вывод консоли

Я использую Selenium с PowerShell, чтобы запустить отображение панели мониторинга в Internet Explorer на большом мониторе в офисе. Инициирую так:

$seleniumOptions = New-Object OpenQA.Selenium.IE.InternetExplorerOptions
$seleniumOptions.BrowserCommandLineArguments = "-k"

$seleniumDriver = New-Object OpenQA.Selenium.IE.InternetExplorerDriver($seleniumOptions)

Все отлично работает. Однако, когда он запускает экземпляр IEDriverServer.exe, вы видите черное окно консоли с выводом отладки. Есть ли способ скрыть это черное окно консоли из поля зрения?

Спасибо.

ОБНОВЛЕНИЕ - с небольшой помощью this, mklement0 и JimEvans мне удалось это сделать вместе и, похоже, работает - всем спасибо:

Либо (до PowerShell 5)

New-Variable -Name IEDS -Value ([OpenQA.Selenium.IE.InternetExplorerDriverService])
$defaultservice = $IEDS::CreateDefaultService()

Или (PowerShell 5)

$defaultservice = [OpenQA.Selenium.IE.InternetExplorerDriverService]::CreateDefaultService()

а потом

$defaultservice.HideCommandPromptWindow = $true;

и наконец

$seleniumDriver = New-Object OpenQA.Selenium.IE.InternetExplorerDriver -ArgumentList @($defaultservice, $seleniumOptions)

person Captain_Planet    schedule 14.10.2018    source источник
comment
Поскольку вы создаете экземпляр класса в процессе и хотите сохранить полученный экземпляр в переменной, вы не можете управлять тем, что делает класс. Итак, если параметры, которые вы передаете конструктору, не разрешают невидимый запуск *.exe, лучшее, что вы можете сделать, - это скрыть окно после его появления. В качестве отступления: пожалуйста, не используйте синтаксис псевдо-метода с New-Object; правильная форма - New-Object OpenQA.Selenium.IE.InternetExplorerDriver $seleniumOptions, что является сокращением от New-Object OpenQA.Selenium.IE.InternetExplorerDriver -ArgumentList $seleniumOptions   -  person mklement0    schedule 15.10.2018
comment
Возможный дубликат how-to-a-powershell -script-без-отображения-окна   -  person lloyd    schedule 15.10.2018


Ответы (1)


Привязки .NET позволяют скрыть окно командной строки, созданное IEDerverServer.exe. Код, демонстрирующий это на C #, приведен ниже. Перевод этого для использования с PowerShell оставлен в качестве упражнения для читателя.

var service = InternetExplorerDriverService.CreateDefaultService();
service.HideCommandPromptWindow = true;

// Set IE driver options here
var options = new InternetExplorerOptions();

IWebDriver driver = new InternetExplorerDriver(service, options);
person JimEvans    schedule 15.10.2018