Internet Explorer steuern

  • Hallo zusammen,

    ich versuche mich gerade mal an was (für mich) ganz neues in AutoIT.

    Hier auf Arbeit arbeiten wir mit einer internen Seite. Ich würde gern diverse Sachen dort auslesen, damit mein Tool dann bestimmte Sachen ausführt. Klingt einfach, scheints dann aber doch nicht.

    Entweder hab ich im Internet falsch gesucht oder es gibt wirklich nicht so viel Info darüber. Ich hab soweit verstanden, dass ich das AutoIT Window Info Tool verwenden muss. (Habe mir auch mal das Winspector installiert... doch da blick ich ja gar nicht mehr durch)

    Ich hab mal 3 Screenshots angehangen wie die Seite aussieht. Ich bekomme, wenn ich das Window Info Tool verwende, nicht wirklich Infos raus. Bzw wüsste ich jetzt nicht wie ich:

    A: Das Dropdownmenü rechts ansprechen kann (Screenshot 2)
    B: Ich darunter den Refreshlink betätigen kann. Ich sehe lediglich eine Änderung im Infotool wenn ich mit der Maus ganz unten über die Links rüberfahre. Dann werden mir Javascripts angegeben.

    Da dies für mich komplett neu ist, könnte mir wer unter die Arme helfen und mir ein paar Beispiele zu meinen Screenshots geben?

    Ich steh hier total auf dem Schlauch -.-

    Danke und LG

  • Ooookay.... ich hab gestern nochmal etwas weiter recherchiert und auch gesehen, dass man mit dem HTML Quellcode arbeiten muss um die bestimmten Controls ansprechen zu können.

    Soweit so gut - nun kommt folgendes Problem. Zum testen hab ich erstmal versucht (man will ja klein anfangen :) ), dass beim Dropdownmenü eine Vorauswahl getroffen wird.

    An folgendem Beispiel aus dem autoitscript.com Forum habe ich mich orientiert:

    Spoiler anzeigen
    [autoit]


    #include <IE.au3>

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

    $site = "http://software.intel.com/en-us/articles/vcsource-samples-optimizing-opencl/"
    $option = "Download all OpenCL samples"
    Local $oIE = _IECreate($site)
    Local $oDownloadSamples = _IEGetObjById($oIE,"download-samples")
    Local $oDownloadSamplesSelect = _IETagNameGetCollection($oDownloadSamples, "select", 0)
    _IEAction($oDownloadSamplesSelect, "focus")

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

    For $sample in $oDownloadSamplesSelect
    If $sample.innerText == $option Then
    _IEFormElementOptionSelect($oDownloadSamplesSelect, $option, 1, "byText")
    EndIf
    Next

    [/autoit]

    Der Quellcode dazu:

    Spoiler anzeigen
    PHP
    <div id="download-samples">
    <select>
    	<option>Select sample...</option>
    	<option value="http://software.intel.com/file/43405">Download this sample only</option>
    	<option value="http://software.intel.com/file/43406">Download all OpenCL samples</option> </select>
    	<a href="#" class="button sampledownload" title="Download">DOWNLOAD</a>
    </div>

    Das klappt... er öffnet die Seite und wählt rechts im Pulldownmenü den entsprechenden eintrag, der im autoIt Quellcode festgelegt wurde.

    Nun habe ich das ganze in unserer Intranetseite versucht:

    Spoiler anzeigen
    [autoit]


    #include <IE.au3>

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

    $site = "https://meine-seite.com/psp/fsprd/EMPLOYEE/ERP/c/FDX_QUERYLOG.FDX_QUERY_TODO.GBL?PORTALPARAM_PTCNAV=FDX_QUERY_TODO_GBL&EOPP.SCNode=ERP&EOPP.SCPortal=EMPLOYEE&EOPP.SCName=PT_PTPP_PORTAL_ROOT&EOPP.SCLabel=Use&EOPP.SCFName=FDX_QL_USE&EOPP.SCSecondary=true&EOPP.SCPTfname=FDX_QL_USE&FolderPath=PORTAL_ROOT_OBJECT.FDX_QL_QUERYLOG.FDX_QL_USE.FDX_QUERY_TODO_GBL&IsFolder=false"
    $option = "CS-Supplies"
    Local $oIE = _IECreate($site)
    Local $oDownloadSamples = _IEGetObjById($oIE,"win0divFDX_QUERY_F_WRK_FDX_QUERY_AS_GROUP")
    Local $oDownloadSamplesSelect = _IETagNameGetCollection($oDownloadSamples, "select", 0)
    _IEAction($oDownloadSamplesSelect, "focus")

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

    For $sample in $oDownloadSamplesSelect
    If $sample.innerText == $option Then
    _IEFormElementOptionSelect($oDownloadSamplesSelect, $option, 1, "byText")
    EndIf
    Next

    [/autoit]

    Der Quellcode dazu:

    Spoiler anzeigen
    PHP
    <div id="win0divFDX_QUERY_F_WRK_FDX_QUERY_AS_GROUP">
    <select name="FDX_QUERY_F_WRK_FDX_QUERY_AS_GROUP" id="FDX_QUERY_F_WRK_FDX_QUERY_AS_GROUP" tabindex="20" size="1" class="PSDROPDOWNLIST" style="width:237px; " onchange="addchg_win0(this);submitAction_win0(this.form,this.name);" psnchg="0">
    <option value=""></option>
    <option value="CS-ADDCUST" selected="selected">CS-ADDCUST</option>
    <option value="CS-MBG">CS-MBG</option>
    <option value="CS-Supplies">CS-Supplies</option>
    <option value="GTS-Call Out">GTS-Call Out</option>
    </select>
    </div>

    Ich blick es nicht :(

    Über das Script ruft er meine Intranetseite noch auf, jedoch kommt dann ein Fehler in der Console:

    Soweit ich das verstehe, findet er keine ID mit dem Namen win0divFDX_QUERY_F_WRK_FDX_QUERY_AS_GROUP... laut Quellcode heisst sie aber so.

    Wer kann mir hier weiterhelfen? ;(;(;(

    Mein AutoIT Smartphone GUI >>hier<<

    Der Mensch ist das einzige Tier, dass arbeiten muss.

  • Das der/diejenige nicht in mein Intranet kommt ist mir schon klar ;)

    Ich dachte, das man anhand der HTML Schnipsel bereits erkennen könnte, warum das ganze nicht funktioniert. In meinen Augen sieht der HTML Code ja fast identisch aus, jedoch nimmt er es nicht an.

    Ich weiss nicht inwiefern das ganze drumherum entscheidend ist, da mein HTML schon lange lange her is....

    Mein AutoIT Smartphone GUI >>hier<<

    Der Mensch ist das einzige Tier, dass arbeiten muss.

  • Also ich habe den html-Teil den gepostet hast mal lokal getestet und da geht das Script Problemlos.

    Zwei Sachen die möglich sind:

    1. Die URL die im Script eingetragen hast ist falsch
    2. Die URL ist du lang für _IECreate wobei ich das weniger glaube.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Naja kann die URL falsch sein, wenn er bei Ausführung des Scripts die Seite ja im Explorerfenster noch öffnet? Erst nachdem die Seite dann vollständig geladen wurde kommt in der Scite Console der Fehler, das er das Objekt nicht finden kann:

    --> IE.au3 V2.4-0 Warning from function _IEGetObjById, $_IEStatus_NoMatch (win0divFDX_QUERY_F_WRK_FDX_QUERY_AS_GROUP)

    Was aber quatsch ist. Man sieht ja anhand des Quellcodes, das der DIV-Container so heisst...

    Mein AutoIT Smartphone GUI >>hier<<

    Der Mensch ist das einzige Tier, dass arbeiten muss.

  • Ist das ganze vielleicht eine Webseite mit Frames?

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Nicht das ich wüsste.... ich kann im Quellcode nur einmal die Verwendung eines iframes sehen - und soweit ich sehe ist das nur für ein Errorreporting. Ich kann gern mal den Quellcode posten und lediglich die 2-3 Direktlinks abändern, so dass man nicht die richtige Adresse sieht?

    Mein AutoIT Smartphone GUI >>hier<<

    Der Mensch ist das einzige Tier, dass arbeiten muss.