Web抓取脚本仅在首次尝试失败后才起作用

时间:2015-05-27 15:12:14

标签: internet-explorer powershell comobject

我有一个用于在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;

0 个答案:

没有答案