【发布时间】:2018-10-14 21:49:39
【问题描述】:
我正在使用 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)
【问题讨论】:
-
由于您在进程中实例化一个类并希望将结果实例保存在一个变量中,因此您无法控制该类的作用。因此,除非您传递给构造函数的选项允许
*.exe的不可见开始,否则您能做的最好的事情就是隐藏窗口在 弹出之后。顺便说一句:请不要在New-Object中使用伪方法语法;正确的形式是New-Object OpenQA.Selenium.IE.InternetExplorerDriver $seleniumOptions,是New-Object OpenQA.Selenium.IE.InternetExplorerDriver -ArgumentList $seleniumOptions的缩写
标签: powershell selenium-webdriver selenium-iedriver