Powershell,ie9和getElementById

Dav*_*vid 5 powershell getelementbyid internet-explorer-9

我从这个站点成功使用了一个用于Web自动化的脚本:heise web automation

我知道这是德语,但也许有人可以提供帮助.

e-plus网站的重要部分:

    <tr>
        <td class="td1">Benutzername:</td>
        <td class="space"><img src="/img/c.gif" alt="" /></td>
        <td class="td2"><input type="text" id="IDToken1OL" name="IDToken1" onfocus="setToken(this)" onblur="getToken(this)" value="Benutzername" /></td>
    </tr>
    <tr>
        <td class="td1">Passwort:</td>
        <td class="space"><img src="/img/c.gif" alt="" /></td>
        <td class="td2"><input type="password" id="IDToken2OL" name="IDToken2" onfocus="setToken(this)" onblur="getToken(this)" value="" class="passwortFake" /></td>
    </tr>
Run Code Online (Sandbox Code Playgroud)

Powershell脚本的一部分:

$script:ie = New-Object -comobject InternetExplorer.Application
$ie.visible = $false
$ie.silent = $true
#
$ie.Navigate("https://www.eplus.de/login/login.asp")
LadenWarten(1)
#
$ie.Document.getElementById("IDToken1OL").value = $user
$ie.Document.getElementById("IDToken2OL").value = $passwort
$ie.Document.getElementsByTagName("a") | foreach {
    if ($_.href -eq "javascript:SSO_Submit()") {
        $_.Click()
    }
}
Run Code Online (Sandbox Code Playgroud)

getElementById适用于ie8,但现在我已经更新到ie9,它不再工作了.

错误消息:

+ $ie.Document.getElementById <<<< ("IDToken1OL").value = $user
    + CategoryInfo          : NotSpecified: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : MethodCountCouldNotFindBest
Run Code Online (Sandbox Code Playgroud)

参数的计数是错误的.

我能找到的只是一个提示,即在ie9 getElementById中改变了.

任何人都可以帮忙吗?

谢谢,大卫

ste*_*tej 2

当仅自动化一个具体站点(并且脚本不是通用的或任何站点)时,您可以尝试在 IE 设置中设置兼容性视图(工具 -> 兼容性视图设置)。浏览网站时,IE 应切换到 IE8 视图。