2009-02-27 39 views
2

Powershellを使用してIEを操作する方法について質問したいと思います。IEオートメーション(Windows PowerShell)

:私はこの小さなものを持って

を - (など、応答の間の時間を測定し、アクションを実行し、ページに移動し、クライアント側で) 私の目標は、自動的にブラウザでいくつかのアクションを実行するスクリプトを書くことです

$ie = new-object -com "InternetExplorer.Application" 
$ie.visible = $true 
$ie.navigate("http://google.com") 

ここでは、ブラウザがページのレンダリングを停止したかどうかを確認したいと思います(ロードに30秒かかると仮定)。 $ie | get-memberで確認したところ、DocumentCompletedプロパティ(イベント)がありますが、アクセス/比較の方法はわかりません。 どうすればいいですか?

または、COMオブジェクトの代わりに.NETを使用し、[system.Windows.Forms.WebBrowser]$ieを開始する必要がありますか?

歓声

編集:
うーん... $ie.busy作品が、私はページのレンダリングの競争の正確な瞬間をお知りになりたい(多分私は以前に明らかにされていないものを)。無限ループで毎秒$ie.busyをチェックするとうまくいくかもしれませんが、それを行う最良の方法ではないと思います。

ページがしばらく読み込まれているとしましょう(レンダリングはクライアント側の巨大なスクリプトのため長いです)。

  1. ロードページにはいくつかのデータを変更し、「保存」をクリックした後にリロードする/再レンダリングかかる時間
  2. :私はそれがかかりますどのくらいたいと思います。
+0

完全なソースコードを含む任意のソリューションですか? – Kiquenet

答えて

1

.busyプロパティを確認できます。

編集:

ステータスプロパティもここで機能します。しかし、Firebugのようなツールを使ってページの読み込み時間を確認することができます。

+0

今のところ、私は.busyに固執しますが、ジェイソンが提案したPS Even Libraryは、調べる価値のあるものです。 Firebugはそうではありません。私は約1000回ページを読み込み、平均読み込み時間を見たいからです。 – yoosiba

1

PowerShellの代わりに.NETに移行する場合は、WatiNが最適です。これはWebBrowserコントロール上で柔軟性を提供し、使いやすくなっています。バージョン2でFirefoxを起動することもできます。

+0

WatiNがSTAを必要とするのでPowershell V2をWatiNで使用する必要があります –

+0

後で(ちょうど楽しみのため)私はC#でWatiNを使用しました。そのヒントありがとう! – yoosiba

+0

完全なソースコードを持つソリューション? – Kiquenet

0

イベントがあるので、PowerShell Eventing Libraryを試してみてください。私はそれを試していませんが、COMイベントをサポートしていると言います。

関連する問題