我有一个用于在Internet Explorer中自动执行任务的脚本。但是这个脚本只有在第一次失败后才能工作。
如果我打开powershell.exe
并运行脚本,它会给我错误
无法在空值表达式上调用方法。
但是如果我点击 F5 并再次运行它,那么从那时起它就完美了。如果我关闭PowerShell并重新打开,则首次尝试时会再次出现错误。
脚本的逻辑基本上是这个
$doc = $ie.Document;
$frames = @($doc.getElementsByTagName("FRAME"));
foreach ($frame in $frames) {
try {
$inputs = @($frame.ContentWindow.document.getElementsByTagName("INPUT"));
foreach ($button in $inputs |
where {$_.type -eq "button" -and $_.value -eq "Ny sag"}) {
$button.click(); $x = 11;
}
} catch {
Exception -errtxt $error[0] -custom_txt ("attempt # " + [string]$x);
}
}
代码在
行上失败$inputs = @($frame.ContentWindow.document.getElementsByTagName("INPUT"));
我尝试添加默认的webclient,但没有任何改变。
$wc = New-Object System.Net.WebClient;
$wc.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials;