使用Windows PowerShell进行IE自动化

时间:2009-02-27 13:51:23

标签: internet-explorer powershell automation scripting

我想问一下通过Powershell操纵IE。 我的目标是编写脚本,在浏览器中自动执行某些操作(在客户端 - 导航到页面,执行操作,测量响应之间的时间等)。

我有这个小东西:

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

现在我想检查一下浏览器是否停止了页面渲染(假设google需要30秒才能加载)。 当我查看$ie | get-member时,有DocumentCompleted属性(事件),但我不知道如何访问/比较它。 我该怎么做?

或许我应该使用.NET代替COM对象并使用$ie启动[system.Windows.Forms.WebBrowser]

欢呼声

编辑:
嗯... $ie.busy有效,但(我之前可能还没有说清楚)我想知道页面渲染比赛的确切时刻。每秒检查$ie.busy无限循环可能有效,但我认为这不是最好的方法。

假设页面加载了一段时间(由于客户端的巨大脚本,渲染很长)。我想要花多长时间:

  1. 加载页面
  2. 在更改某些数据并点击“保存”后重新加载/重新渲染需要多长时间。

3 个答案:

答案 0 :(得分:1)

您可以查看.busy属性。

编辑:

状态属性也可以在此处使用。但是,您可以使用Firebug之类的工具查看页面加载时间。

答案 1 :(得分:1)

如果您决定使用.NET而不是PowerShell,WatiN对此非常有用。它将为您提供比WebBrowser控件更大的灵活性,并且更易于使用。您现在也可以在版本2中启动Firefox。

答案 2 :(得分:0)

由于它有一个事件,你可以尝试PowerShell Eventing Library。它说它支持COM事件,但我还没有尝试过。