Mit IE.au3 auf bereits geöffnete Instanz zugreifen

  • Hallo zusammen,

    bin nicht mehr so ganz neu mit AutoIt und trotzdem hab ich folgende Frage nicht selbst beantworten können:

    (Wie) Kann ich IE.au3 auf eine bereits geöffnete Site anwenden.

    Also ohne, dass mit _IECreate('<URL>') erst eine Browser-Instanz erzeugt wird.

    Soweit ich das verstehe, wird mit _IECreate das DOM Objekt "Browser" erzeugt und eben mit der Zuweisung zu einer Variablen nutzbar gemacht.

    Die anderen Funktionen nutzen dan den Objektbaum. Das ist genau, was ich brauche.

    Aber wie - falls überhaupt - kann ich auf das Browser-Ojekt einer bereits geöffneten Instanz zugreifen?

    Mein laienhafter Versuch über WinGetHandle war erfolglos (klar - ein WinHandle ist nun mal kein DOM Objekt).

    Gibt es irgend einen Weg vom einen zum anderen zu kommen, den ich einfach nur noch nicht gefunden habe?

    Mit _IEAttach habe ich es erfolglos versucht:

    _IEAttach( '<TEXT>' , 'windowtitle' ) liefert genauso kein Objekt zurück wie der Weg über den 'url' modus.

    Autoit-v3.3.14.5

    IE 11.285.171340


    Vielen Dank für Euren Rat :)

    der Jens

    P.S.: _IECreate('<URL>') funktioniert zwar, kreiert aber eben eine neue Instanz - unelegant. ^^

  • Schau dir dazu _IEAttach in der Hilfe an, ist genau was du brauchst. Teste auch die Beispiele dazu. Zum Verständnis sollte das 5. am besten geeignet sein. Vorher ein paar IE-Instanzen per Hand starten und danach das Beispiel. Wie du mit RegEX nur an bestimmte kommst zeigt dir Beispiel 4, dazu solltest du auch über:

    • Window Titles and Text (Basic)
    • Window Titles and Text (Advanced)

    Bescheid wissen, denn es gilt auch bei _IEAttach sinngemäß.

    Aber warum rufst du den IE nicht direkt aus deinem Skript auf?

  • Vielen Dank schon mal - dann werde ich mich in _IEAttach noch tiefer reinarbeiten und melde mich ggf. mit Detailfragen noch mal. :)


    "Aber warum rufst du den IE nicht direkt aus deinem Skript auf?"

    Der Plan war eigentlich, zu jeder Zeit während man manuell auf der Seite schon hantiert hat, das Script zu starten und dann mit genau der Instanz (also genau dem Object, auch kein neuer Tab mit gleicher URL) automatisiert weiter zu interagieren. Das Script soll also nicht am Anfang des Handlings stehen und z.B. nicht stundenlang unnütz herum-idlen bevor es mal Arbeit bekommt. Außerdem müsste dann ja wohl auch die Browserinstanz offen gehalten werden: Manuelles Schließen und neu Öffnen wäre dann ja auch ein Showstopper, soweit ich es verstehe. :)

    Eines der Anwendungsgebiete, die ich im Auge habe: In einem web-basierten Ticketsystem in einem Rutsch mehrere Änderungen an einem Ticket vorzunehmen - und zwar in dem, dessen Nummer gerade in der Windows Zwischenablage liegt und das in irgend einem Tab bereits geöffnet ist.

    Da dort auch u.a. noch zu speichernder Inhalt in Textfeldern nicht verloren gehen darf, muss ich zwingend genau diesen Browsertap verwenden.

    Und: Ich möchte mehrere "Aktionen" definieren (Script mit GUI & Buttons) - weiß also beim Start des Scripts weder, mit welcher Instanz es arbeiten wird, noch, was es tun wird.

    Ein anderes: Nachdem in einem Spiel eine Aktion bereits läuft, die zum Abschluss später noch ein paar Klicks braucht, soll bei Bedarf das Script diese ausführen.