我正在尝试编写一个简单的PowerShell脚本,该脚本导航到某个页面,等待它加载然后执行任务。
我见过许多例子都使用“$ ie.Busy”来检查页面是否准备就绪,但这对我不起作用。
以下是我正在尝试做的事情:
$ie = new-object -ComObject "InternetExplorer.Application";
$ie.visible = $true;
$ie.navigate("www.some-page.com");
while ($ie.Busy -eq $true)
{
sleep -Milliseconds 100;
}
//do stuff
然而,$ ie.Busy并没有像我认为的那样工作。它不会进入while循环,因为我发现在循环中包含一个print语句而没有看到它打印任何东西。导航后尝试打印$ ie.Busy的内容只返回“System .__ ComObject.Busy”。
我也尝试将while循环更改为:
If ($ie.Busy -eq $true) {"True"}
ElseIf ($ie.Busy -eq $false) {"False"}
Else {"Neither"}
为了看看$ ie.Busy的价值是多少。它只会打印“Neither”,因此它不会按预期获取布尔值。有没有办法等待页面加载?
注意:我也看到人们使用ReadyState作为替代方案,但它给了我同样的问题,Busy在我尝试访问其值时没有返回整数的意义。
*使用IE11