Auf bestimmte Felder im Internet fokusieren?!

  • Hallo Leute,

    hätte mal gerne gefragt, wie es möglich ist auf bestimmte Felder im Internet, wie z.B. ein Anmeldeformular (Benutzername und Passwort) zu fokusieren?
    Danke im vorraus.

    MfG

    MehmeX

  • Hallo,

    doch Inputs können sogar über Namen, IDs, Class und Index angesprochen werden, nur eben nicht mit den "normalen" AutoIt Befehlen, dafür brauchst du die IE.au3 oder FF.au3
    Und fokusieren usw. wird damit auch überflüssig da z.B. Werte direkt gesetzt werden können.

    [EDIT]
    z.B. web-Suche mit FireFox:

    [autoit]

    #include <FF.au3>

    [/autoit][autoit][/autoit][autoit]

    If _FFStart("www.clusty.com") Then
    $sSuchbegriff = "autoit"
    _FFSetValueByName("query", $sSuchbegriff)
    _FFFormSubmit()
    EndIf

    [/autoit]

    Grüße
    Stilgar

    Einmal editiert, zuletzt von Stilgar (5. September 2009 um 11:16)

  • Danke für die Antwort, werde es mal ausprobieren.

    Edit: Wie kommst du aber auf "query"? Muss man das im Quelltext suchen?
    Gibt es da auch eine Alternative. Denn das "IE" ist ja einmal für Internet Explorer und das "FF" ist ja nur für FireFox.
    Hätte gerne eine Methode wo es bei beiden klappt. Danke. :)

    3 Mal editiert, zuletzt von MehmeX (6. September 2009 um 01:17)

  • Du kannst im Quellcode der Seite, die Namen der Inputs oder Buttons etc. herausbekommen.
    Diese musst du dann mit AutoIt bearbeiten:

    [autoit]

    $Input1 = _IEGetObjById ($oIE, "query")
    $Input2 = _IEGetObjByName ($oIE, "query")
    _IEFormElementSetValue ($Input1, "Bla Bla Bla")
    _IEFormElementSetValue ($Input2, "Bla 2 Bla 2 Bla2")

    [/autoit]
  • Kannst du mir da einen Tipp geben, wie ich das im Quelltext am besten und am schnellsten finden kann? Weil die Quelltexte sind nicht gerade kurz.

  • Spoiler anzeigen
    [autoit]

    #include <IE.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $oIE = _IECreate ("http://www.hoasse80a.at/page22.php")

    [/autoit] [autoit][/autoit] [autoit]

    $oForms = _IEFormGetCollection ($oIE)
    If @error Then
    MsgBox(0, '', 'Keine Formen enthalten')
    Else
    $Index = 0
    For $oForm In $oForms
    ConsoleWrite('Form-Index: ' & $Index & ' / Name: ' & $oForm.Name & @CRLF)
    $oFormElements = _IEFormElementGetCollection($oForm)
    If IsObj($oFormElements) Then
    $IndexElement = 0
    For $oElement In $oFormElements
    ConsoleWrite('Form: ' & $Index & ' /Element: ' & $IndexElement & ' /Name: ' & $oElement.Name & @CRLF)
    $IndexElement += 1
    Next
    EndIf
    $Index += 1
    Next
    EndIf

    [/autoit]
  • In FF findest du die passenden Informationen am einfachsten mit dem AddOn FireBug.
    Oder auch mit dem FF-Page-Analyzer (siehe Sig)

    Es gibt keine Lösung die für beide Browser gleichermaßen geht, du mußt jeweils für beide ein anderes Programm bzw. anderen Programmteil schreiben.
    Alle anderen "Lösungen" führen manchmal eher zu zufallsgenerierten Ergebnissen.