Hilfe bei IE-Steuerung

  • Hallo!

    Erstmal die Frage: Zählt ein Loginskript für eine Webseite als Bot? Wenn nein:

    Mit welchem IE-Befehl kann ich Comboboxen einer Website auswählen lassen/Inputboxen beschreiben? Die Hilfe ist da wie ich finde ziemlich durcheinander und ich raff mit den ganzen IE-Variabeln garnicht durch.

    fabs

    Einmal editiert, zuletzt von fabs (9. Juni 2008 um 15:50)

  • https://autoit.de/www.marcophono.net

    Eine Art Login-Skript. Anfangs hatte ich das mit MouseClicks, aber seit die Werbung mit variabler Position eingeblendet wird hab ich schlechte Karten ;)
    Es soll eben den Namen sowie die Telefonnummer eingeben und bestätigen.

    edit:
    War ne falsche Adresse. Ist jetzt richtig :P

    Einmal editiert, zuletzt von fabs (5. Juni 2008 um 20:42)

    • Offizieller Beitrag

    Hi,

    Spoiler anzeigen
    [autoit]

    #include<IE.au3>
    $sUsername = "Username"
    $sPassword = "Password"
    $sUrl = "http://www.marcophono.net/home.html"
    $oIE = _IECreate($sUrl, 0, 1, 0, 1)
    Sleep(2000)
    $oHWND = _IEPropertyGet($oIE, "hwnd")
    WinSetState($oHWND, "", @SW_MAXIMIZE)
    $oForm = _IEFormGetCollection($oIE, 1)
    $oUsername = _IEFormElementGetObjByName($oForm, 'user')
    $oPassword = _IEFormElementGetObjByName($oForm, "pass")
    _IEFormElementSetValue($oUsername, $sUsername)
    _IEFormElementSetValue($oPassword, $sPassword)
    _IEFormSubmit($oForm)

    [/autoit]

    Mega


  • Eine Art Login-Skript. Anfangs hatte ich das mit MouseClicks, aber seit die Werbung mit variabler Position eingeblendet wird hab ich schlechte Karten ;)


    Ach, die haben Popup-Werbung :D So was merk ich gar nicht, da ich AdBlock draufhab ;)
    Wenn du willst, kannst du den Login auch mit der FF.au3 und MozLab für Firefox machen :)

  • Vor allem übersichtlicher mit FF :D

    Spoiler anzeigen
    [autoit]

    #include<FF.au3>
    $sUsername = "Username"
    $sPassword = "Password"
    $sUrl = "http://www.marcophono.net/home.html"
    $Socket = _FFStart($sUrl,Default,2)

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

    _FFAction($Socket,"max")
    _FFSetValueByName($Socket,"user",$sUserName)
    _FFSetValueByName($Socket,"pass",$sPassword)
    _FFFormSubmit($Socket)

    [/autoit]
  • Ah danke ich wollte das eigentlich für die Szenarien machen aber jetzt hab ich ja den Ansatz. :thumbup:

    edit:

    @ Stilgar:
    Error beim Includen ...

    @ Xeno:
    Ich versuch das grad auf das hier umzuschreiben.

    Spoiler anzeigen
    [autoit]

    #include <IE.au3>
    $name = "Ali"
    $url = "http://www.marcophono.net/flatrate_13_a.html"
    $oIE = _IECreate($url, 0, 1, 0, 1)

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

    Sleep(2000)

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

    $oHWND = _IEPropertyGet($oIE, "hwnd") ;Was bringt das? Was ist "hwnd"?
    $oForm = _IEFormGetCollection($oIE, 1) ;??

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

    $selectname = _IEFormElementGetObjByName($oForm, "flatrate_who")
    _IEFormElementSetValue($selectname, $name)

    [/autoit]

    Nach dem Öffnen vom IE:

    Spoiler anzeigen

    --> IE.au3 V2.3-1 Warning from function _IEFormGetCollection, $_IEStatus_NoMatch
    --> IE.au3 V2.3-1 Error from function _IEFormElementGetObjByName, $_IEStatus_InvalidDataType
    --> IE.au3 V2.3-1 Error from function _IEFormElementSetValue, $_IEStatus_InvalidDataType

    @ Prograndy:
    Nein, ich rede von den Google-Anzeigen. Mein Kaspersky blockt das eigentlich auch, aber meine Mausklicks stimmten komischerweise trotzdem nach einem Tag nicht mehr. Außerdem wäre mir das ganze mit Internet Explorer lieber, weil es dann auf jeden PC funktioniert.

    3 Mal editiert, zuletzt von fabs (6. Juni 2008 um 14:13)

  • Eigentlich will ich das ganze auf jedem PC zum Laufen bringen. Kann mir jemand meine Fragen aus dem Quelltext + warum das Ding nicht geht, beantworten?

  • Ja, der erste Fehler kommt daher, dass die Forms bei 0 anfangen, nicht bei 1 :) Das andere sind dann wohl folgefehler.

  • Danke für die Hilfe, aber es kommen immernoch Fehler:

    --> IE.au3 V2.3-1 Warning from function _IEFormElementGetObjByName, $_IEStatus_NoMatch
    --> IE.au3 V2.3-1 Error from function _IEFormElementSetValue, $_IEStatus_InvalidDataType

    Könnte mir jemand die einzelnen Zeilen erklären? Sonst spamme ich hier noch alles zu mit meinen Fragen, da ich beim IE wirklich garkeinen Durchblick habe.

  • Die Fehler: $_IEStatus_NoMatch -> kein Treffer
    $_IEStatus_InvalidDataType -> Falscher Datentyp in einem der Parameter (Hier: der objekt-Parameter, da er kein Objekt ist)
    Zum Skrpit:
    1) Die Zeile ist falsch:
    $selectname = _IEFormElementGetObjByName($oForm, "flatrate_who")
    Das Optionsfeld heißt dienamen2
    $selectname = _IEFormElementGetObjByName($oForm, "dienamen2")
    2) Ist das ein Optin-Select Feld, also:
    _IEFormElementOptionSelect zum Auswählen

  • Hmm.. Jetzt kommen zwar keine Fehler aber es wird kein Name ausgewählt.

    Spoiler anzeigen
    [autoit]

    #include <IE.au3>

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

    $name = "Anna"
    $url = "http://www.marcophono.net/flatrate_13_a.html"
    $oIE = _IECreate($url, 0, 1, 0, 1)

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

    _IELoadWait($oIE)

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

    $oHWND = _IEPropertyGet($oIE, "hwnd")
    WinSetState($oHWND, "", @SW_MAXIMIZE)

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

    $oForm = _IEFormGetCollection($oIE, 0)

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

    $selectname = _IEFormElementGetObjByName($oForm, "dienamen2")

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

    _IEFormElementOptionSelect($selectname, $name)

    [/autoit]

    Ich habe auch schon nach jeder Zeile Messageboxen angehängt, um zu überprüfen, ob was ausgelassen wird. Er macht alles durch bis _IEFormElementOptionSelect, aber passieren tut ab dem Maximieren nichts mehr (sichtbares).

  • Du musst den Searchmode von Option Select richtig einstellen.
    Du benötigst byText:
    _IEFormElementOptionSelect($selectname, $name,1,"byText")

  • Ah Danke, jetzt funktioniert es. Werde jetzt noch ne GUI bauen und die anderen Szenarien unterstützen :)