0
私はIEがテキストファイルとして保存する場合とまったく同じようにWebページ(ASP)を保存したいと思います。PowerShellを保存IEウェブページのテキスト
私はthisを発見し、試してみました:
$ie=New-Object -ComObject InternetExplorer.Application
$ie.Navigate($Page)
$ie.Document.execCommand("SaveAs", $false, "1.txt")
しかし、私はエラーを取得しています:
You cannot call a method on a null-valued expression.
At line:3 char:1
+ $ie.Document.execCommand("SaveAs", $false, "1.txt")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
私は私が間違ってやっているかわからないんだけど。
私は
$web = New-Object Net.WebClient
$web | Get-Member
$web.DownloadString($Page) | Out-File "test.html"
経由でページをキャプチャしようとした場合、私はページを取得しますが、それは私がリンクを知らせるサイトで作成されたエラーページが無効でいますので、私ならば、それだけで、実際にページを見つけましたそれをIEセッションを通してロードします。
私は本当にただのテキストファイルとしてIEのページをキャプチャ自動化する必要がある、と私はSendKey
機能を使用せずにそれを行うには願っています。誰も助けることができますか?
IEはページをロードし終えると、HTMLを解析し、DOMを生成するためにおそらくあなたは待っていないので、何の.Documentはまだありません。あなたは一般的に必要に '.Navigate(..)'、その後、 '($ ie.Busy -OR $ ie.ReadyState -ne 4)しながら、{開始-sleepが-Milliseconds 100}'それがコンテンツをロードするために前に、待機しますそれを使って何かをする。 – TessellatingHeckler
ありがとうございます。たぶんそれですが、今は走っている/ぶら下がっています。それで1/10秒遅れてはいけませんか? – Nate
@TessellatingHecklerまた、navigateとexecCommandの間に 'Start-Sleep 10 'を試みましたが、同じエラーが発生しました。あなたが示唆している行を追加することは、まだ永遠にハングアップしています。アイデア? – Nate