4 Stimmen

Die Schaltfläche "Senden" kann mit mshtml.HTMLInputElement nicht lokalisiert und angeklickt werden.

Darunter befindet sich ein HTML-Formular und darunter eine vb-Prozedur, "LoginExamp", die den Benutzernamen und das Passwort eingibt. Ich bin jedoch nicht in der Lage, die Schaltfläche zu finden und darauf zu klicken, da sie nicht als mshtml.HTMLInputElement angezeigt wird. "htmlInput.click()" wird nicht ausgeführt. Wie kann ich den loginExamp-Code so anpassen, dass die Schaltfläche angeklickt wird? Danke für jede Hilfe.

<form id="loginform" name="loginform" method="post" action="">
<input id="username" class="formfield" type="text" value="User Name" maxlength="40" name="Xusername">
<input id="password" class="formfield" type="password" onfocus="clearDefault(this)" maxlength="40" name="Xpassword">
<button class="subButton" onclick="javascript: submitform()">submit!</button>
</form>

Mit dem folgenden Code

Public Sub loginExamp()
    Dim objIE As SHDocVw.InternetExplorer
    Dim htmlDoc As mshtml.HTMLDocument
    Dim htmlInput As mshtml.HTMLInputElement
    Dim htmlColl As mshtml.IHTMLElementCollection
    Dim url As Object
    url = "http://localhost/ButtonClickTest.html" 'just a test page with the loginform above
    objIE = New SHDocVw.InternetExplorer
    With objIE
        .Navigate(url)
        .Visible = True
        While .Busy = True
            Threading.Thread.Sleep(2000)
        End While
        htmlDoc = .Document
        htmlColl = htmlDoc.getElementsByTagName("INPUT")
        While .Busy = True
            Threading.Thread.Sleep(2000)
        End While
        For Each htmlInput In htmlColl
            If htmlInput.name = "Xusername" Then
                htmlInput.value = "theusername" 'this works
            ElseIf htmlInput.name = "Xpassword" Then
                htmlInput.value = "thepassword" 'This works too
            End If
            If htmlInput.className = "subButton" Then 'This is never true
                htmlInput.click() 'This line never runs
            End If
        Next htmlInput
    End With
End Sub

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X