2009-02-27 76 views
2

我想問一些關於通過Powershell操縱IE的問題。 我的目標是編寫腳本來自動在瀏覽器中執行一些操作(在客戶端 - 導航頁面,執行操作,測量響應之間的時間等)使用Windows PowerShell的IE自動化

我有這個小東西:

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

現在我想檢查瀏覽器是否停止了頁面渲染(假設谷歌需要30秒加載)。 當我檢查$ie | get-member有DocumentCompleted屬性(事件),但我不知道如何訪問/比較它。 我該怎麼做?

或者,也許我應該用.NET代替COM對象,並用[system.Windows.Forms.WebBrowser]啓動$ie

歡呼

編輯:
嗯... $ie.busy作品,但(什麼,也許我還沒有做出明確更早)我想知道的頁面渲染競爭的確切時刻。無限循環檢查$ie.busy每秒都可以工作,但我想這不是最好的方法。

假設頁面正在加載一段時間(由於客戶端上的巨大腳本,渲染很長)。我想多久沒有考慮到:

  1. 加載頁面
  2. 將需要多長時間才能重新加載/改變一些數據,並點擊「保存」後,重新渲染。
+0

任何解決方案與完整的源代碼? – Kiquenet 2013-02-11 09:06:48

回答

1

您可以檢查.busy屬性。

編輯:

狀態屬性也將在這裏工作。但是,您可以使用Firebug之類的工具查看頁面加載時間。

+0

現在我會堅持使用.busy,儘管Jason提出的PS Even Library是值得研究的東西。 Firebug並非如此,因爲我想要加載大約1000次的頁面並查看平均加載時間。 – yoosiba 2009-03-04 06:58:19

1

如果您確實決定使用.NET而不是PowerShell,那麼WatiN非常適合您。它將爲WebBrowser控件提供很大的靈活性,並且使用起來更容易。您現在還可以在版本2中驅動Firefox。

+0

因爲WatiN需要使用Powershell V2,因此WatiN需要STA – 2009-02-27 17:31:44