4

クエリの実行後に Web サイトから HTML を取得するために使用できるスクリプトを powershell で作成しようとしています。

自分のマシンでは問題なく動作する以下を実行できますが、Server 2008 マシンで実行しようとすると、Document.Body.InnerHTML コマンドから出力が得られず、すべての Document.GetElementById パーツが問題なく動作します。 .

    $ie = New-Object -com InternetExplorer.Application
    $ie.silent = $true
    $ie.navigate2("http://www.mxtoolbox.com/")
    while($ie.busy) {start-sleep 1}
    $ie.Document.getElementById("ctl00_ContentPlaceHolder1_txtToolInput").Value = "mx:domain.co.uk"
    $ie.Document.getElementById("ctl00_ContentPlaceHolder1_btnAction").Click()
    Start-Sleep -Seconds 10
    $ie.Document.body.innerHTML | Out-File "C:\NETESP\MXRecords\MXRecordsHTML.txt" -Encoding ASCII
    $ie.Quit()

これが値を返すようにするために、サーバー2008ボックスにインストールする必要があるものはありますか?

前もって感謝します

4

1 に答える 1

3

タイミングの問題でしょうか?2008年にはテストできませんが、これを試してみてください:

$ie = New-Object -com InternetExplorer.Application
$ie.silent = $false
$ie.navigate2("http://www.mxtoolbox.com/")
while($ie.busy) {start-sleep 1}
$ie.Document.getElementById("ctl00_ContentPlaceHolder1_txtToolInput").Value = "mx:domain.co.uk"
$ie.Document.getElementById("ctl00_ContentPlaceHolder1_btnAction").Click()

# wait for the result page 
While($ie.LocationURL -eq 'http://www.mxtoolbox.com/') {
    Write-Warning "Waiting for result"
    Start-sleep 1
}

# grab the table html
$table = $ie.Document.getElementsByTagName('TABLE') | Where-Object {$_.className -eq 'table table-striped table-bordered table-condensed tool-result-table'}
$table.outerHTML | Out-File "C:\NETESP\MXRecords\MXRecordsHTML.txt" -Encoding ASCII
$ie.Quit()
于 2012-09-17T09:38:33.047 に答える