以下代码适用于PowerShell ISE,但在常规PowerShell控制台中运行时,文档对象为空:
$ie = New-Object -COM InternetExplorer.Application
$ie.Navigate('http://www.example.com')
$ie.Visible = $true
do { Start-Sleep -m 100 } while ( $ie.busy )
$document = $ie.document
$window = $document.parentWindow
"Ready state: " + $ie.ReadyState
"Document: " + $document
"Window: " + $window
PowerShell ISE中的输出:
Ready state: 4
Document: mshtml.HTMLDocumentClass
Window: System.__ComObject
常规PowerShell控制台中的输出:
Ready state: 4
Document: mshtml.HTMLDocumentClass
Window:
在PowerShell.exe中运行时,$window
和$document
的所有其他属性都为空。为什么这样以及如何解决?谢谢!
答案 0 :(得分:4)
尝试使用-sta
选项执行常规控制台。
答案 1 :(得分:1)
你应该检查ReadyState
属性是否完成,而不是flacky Busy
属性,这可能是为了告知停止按钮是否应该可用,并且主要用于说明:{/ p>
do { Start-Sleep -m 100 } while ( $ie.ReadyState -ne 4 )