_IEAction auf ObjID geht nicht

  • Hallo AutoIT Gemeinde,

    ich verzweifel gerade etwas... ich möchte, dass das Skript auf Arbeit den Dienstplan aufruft, sich dort einloggt und den entsprechenden Reiter auf der Webseite öffnet wo die Zeiten eingetragen sind.

    Das öffnen der Seite, das Login und das warten bis alles geladen wurde funktioniert. Auch findet er den Link/Reiter wo ich auf die Zeiten zugreifen könnte - aber der Klick darauf klappt nicht.

    Hier mal der Source von mir:

    Spoiler anzeigen
    [autoit]


    #include <IE.au3>

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

    $username = "TEST"
    $passwort = "PASSWORD"

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

    $oIE = _IECreate ("https://xxx.xxx.xxx/WorkforceManager/Login.aspx",0,1)
    _IELoadWait($oIE)

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

    $oForm = _IEFormGetCollection($oIE, 0)
    $oNameInput = _IEFormElementGetObjByName($oForm, 'Text_Username')
    $oPaswInput = _IEFormElementGetObjByName($oForm, 'Text_Password')
    _IEFormElementSetValue ($oNameInput, $username)
    _IEFormElementSetValue ($oPaswInput, $passwort)

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

    $oDiv = _IEGetObjById($oIE, "ext-gen17")
    ;~ ConsoleWrite(_IEPropertyGet($oDiv, "innertext") & @CRLF)
    _IEAction($oDiv,"click")

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

    WinWait("AZE - Shiftplan :: Agentmaster data")

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

    $oDiv1 = _IEGetObjById($oIE, "TabPanel1__TabShifts")
    ;~ ConsoleWrite(_IEPropertyGet($oDiv1, "innertext") & @CRLF)
    MsgBox(0,"Check","Fertig geladen")
    _IEAction($oDiv1,"click")

    [/autoit]

    Ich habe auch mal ein Screenshot von Google Chrome angehangen wo man den quelltext in Verbindung mit dem Aufbau der Seite sieht.
    Über ConsoleWrite gibt er mir ja auch den "innertext" wieder, er findet es aja also - daher verstehe ich nicht, das er nicht klicken kann.

    Kann mir wer weiterhelfen?

  • Wenn ich
    _IEAction($oDiv1,"click")
    mit
    ControlClick("AZE - Shiftplan :: Agentmaster data", "", $oDiv1)
    ersetze passiert leider auch nichts....

    :(

    Mein AutoIT Smartphone GUI >>hier<<

    Der Mensch ist das einzige Tier, dass arbeiten muss.

  • Hallo Ihr beiden... erstmal vielen Dank für die Unterstützung.

    Leider passiert auch mit dem obigen Code rein gar nichts.... er kommt bis nach dem Login, aber den Reiter tut er nicht wechseln :(

    Wie man oben auf dem Screenshot erkennen kann gibt's ja insgesamt 4 Reiter und er startet nach dem Login immer auf der "user search". Keine Chance das Ding irgendwie bewegt zu bekommen -.-
    Aber irgendwie muss es doch gehen... ist doch "nur" eine Webseite :(

    LG
    Mirko

    Mein AutoIT Smartphone GUI >>hier<<

    Der Mensch ist das einzige Tier, dass arbeiten muss.

  • Zitat


    Aber irgendwie muss es doch gehen... ist doch "nur" eine Webseite :(


    Vielleicht ist es nicht 'nur' eine Webseite, ist es evtl ein spezielles object, zb flash? klingt seltsam gibts aber;)

  • Naja soweit ich erkennen kann wirds wohl durch Javascript gesteuert...

    Wenn ich über den IE den Quellcode aufrufe guckt man wie die Sau in den Urwald :D

    Ordentlichen "leserlichen" Quellcode erhalte ich erst in Google Chrome wenn ich "Element untersuchen" anklicke... (siehe Screenshot oben). Aber der Quellcode dort kann ja auch gefunden werden.... nur der Klick darauf klappt nicht - das ist ja das was mich wundert.

    Mein AutoIT Smartphone GUI >>hier<<

    Der Mensch ist das einzige Tier, dass arbeiten muss.

  • benutze doch mal zum auslesen firefox und das plugin firebug ...

    eventuell kannst du das nach dem login gleich so aufrufen, dass er den reiter shiftplan lädt ..
    über _IENavigate ($oIE, "http://url zum ziel.aspx")
    oder
    _IEImgClick ($oIE, "http://url zum ziel bild auf dem tab.png")
    oder
    _IELinkClickByText ($oIE, "angezeigter text des tabsl")

    du kannst versuchen auch mit Send (tab) zu arbeiten ...

    Ist die Software von Teletrain / Witness?

    gruß gmmg ;)

    4 Mal editiert, zuletzt von gmmg (22. August 2014 um 09:42)

  • Hab's grad mal mit Firebug getestet. Ist letzendlich genau dieselbe Ausgabe wie über Google Chrome...

    PHP
    <li id="TabPanel1__TabShifts" class="">
     	<a class="x-tab-strip-close" onclick="return false;"></a>
     	<a class="x-tab-right" onclick="return false;" href="#">
              <em class="x-tab-left">
                   <span class="x-tab-strip-inner">
                     	<span class="x-tab-strip-text ">Shiftplan</span>
    	            </span>
          	</em>
     	</a>
    </li>


    So sieht der komplett Code vom Reiter aus. Es gibt also weder einen Link (href="#" nützt mir ja nix), noch wird ein Bild geladen was ich klicken könnte. Und das ist ja das was mir Schwierigkeiten bereitet. Würde ich eine URL sehen die er durch das klicken lädt wäre es ja zu einfach :)

    Ob die Software von Teletrain oder Witness ist kann ich Dir gar nicht beantworten - bin nur Anwender der Software - nicht der Admin :)

    Mein AutoIT Smartphone GUI >>hier<<

    Der Mensch ist das einzige Tier, dass arbeiten muss.

    Einmal editiert, zuletzt von mirko2002 (22. August 2014 um 10:54)

  • Jep,

    _IELinkClickByText ($oIE, "Shiftplan") geht auch nicht...

    MouseClick... hm... da hab ich Bauchschmerzen wegen der Coords. Wenn ich den Befehl grad richtig gesehen habe (nur schnell überflogen) dann muss ich ja die X und Y Coords angeben wohin die Mouse klicken soll. Das Fenster ist aber jedesmal an einer andere Position wenn es sich öffnet :(

    Eigentlich soll das Script nichts anderes machen als sich im Dienstplan einzuloggen, den Diensplan Reiter aufzurufen und davon einen Screenshot zu machen und wieder alles zu schliessen... nur Screenshot hin oder her - nützt mir nix wenn vorher nicht das angezeigt wird was "gescreenshotet" werden soll :D

    Mein AutoIT Smartphone GUI >>hier<<

    Der Mensch ist das einzige Tier, dass arbeiten muss.

  • Eben probiert... man sieht zwar, wenn ich die Tabtaste durchdrücke, das er den Tab "umrandet" aber ich kann da Enter oder Space oder sontwas drücken - er nimmts nicht. Dadrunter ist ein Inputfeld mit Button, wenn ich den Button mit Tab ansteuer und Enter drücke gehts... nur die Tabs oben sind echt ne Hausnummer....

    Mein AutoIT Smartphone GUI >>hier<<

    Der Mensch ist das einzige Tier, dass arbeiten muss.

  • Hm... hab mir beides mal genau durchgelesen. Beide nicht brauchbar... bei denen gehts drum gar nicht erst die ID oder ähnliches zu finden.

    Das ist bei mir nicht das Problem, denn mit $oDiv1 = _IEGetObjById($oIE, "TabPanel1__TabShifts") wird die ID ja auch gefunden. Lediglich der Click darauf reagiert nicht und das wird bei diesen beiden Threads leider nicht bearbeitet :(

    Mein AutoIT Smartphone GUI >>hier<<

    Der Mensch ist das einzige Tier, dass arbeiten muss.