[Frage] Script zum Emails abrufen

  • Hi,

    ein Feld gezielt ansprechen geht so:

    Code
    #include <IE.au3>
    Dim $ieObj = _IECreate()	;InternetExplorer-Objekt erzeugen
    _IENavigate($ieObj, "http://www.deinseite.de",1) ;zu der gewünschten Seite navigieren
    Dim $formElement = _IEGetObjByName ( $ieObj, "all203") ;Referenz zu einem bestimmten Formelement herstellen
    if (@error = 0) then ;wenn kein Fehler aufgetreten ist ...
    	_IEFormElementSetValue ( $formElement, "autoit" ) ;schreibe "autoit" in das Feld
    Endif

    .. und hier nochmal das Skript mit google als Beispiel, zum testen:

    Code
    #include <IE.au3>
    Dim $ieObj = _IECreate()	;InternetExplorer-Object erzeugen
    _IENavigate($ieObj, "http://www.google.de",1)	;Eine bestimmte Seite wird abgerufen
    Dim $formElement = _IEGetObjByName ( $ieObj, "q")
    if (@error = 0) then
    	_IEFormElementSetValue ( $formElement, "autoit" )
    	send("{enter}")
    EndIf
  • Leider funktioniert diese Version auch nicht. Gleiche Fehlermeldung:

    Line 261 (File "C:\.........\include\IEau3")

    Case "0"

    Eror "Case" statement with no matching "Select" statment

    Ich benutz die BETA. Woran kann das liegen?

    • Offizieller Beitrag

    Bist du dir sicher das du die Beta-Version auch benutzt? Dafür musst du auch mit der Autoit3.exe im Verzeichnis "....\Autoit3\beta" arbeiten. Wenn du den SciTE benutzt mußt du mit Alt+F5 ausführen bzw. mit Alt+F7 kompilieren.

    Im Verzeichins "....\Autoit3\beta\Extras" gibt es auch das Tool Toggle AU3 Beta.au3 damit kannst du zwischen der Beta- und Stable-Version hin- und herschalten.

  • Hallo,
    dies liegt an der Installationsreihenfolge. Du hast die Beta erst nach dem SciTE installiert. Deshalb einfach SciTE nochmals darüber installieren und es läuft.
    eddy_erpel

    Einmal editiert, zuletzt von Eddy_Erpel (11. Juni 2006 um 22:05)

  • Hi,

    @NixNutz

    ich habe bei mir jetzt gerade mal auf die Prod-Version von Autoit umgeschaltet und dann das Script gestartet. Jetzt bekomme ich die gleiche Fehlermeldung wie Du. Es liegt also definitiv daran, dass das Skript mit der Prod-Version ausgeführt wird. Es sollte reichen wenn Du "\AutoIt3\Beta\Extras\Toggle AU3 Beta.au3" aus dem Betainstallationsverzeichnis ausführst und dann nochmal das Skript startest. ;)

  • Leute, ihr seit die besten!

    In einem anderen Forum würde so ein problemkind wie ich schon lange rausfliegen :D


    @jonk habe dein script ausprobiert, bei google klappts bei mir nicht :(

    gibt es denn keine möglichkeit ein bestimmtes word zu makieren?


    EDIT
    Das script findet kein object liegt das an den frames?

    Einmal editiert, zuletzt von NixNutz (12. Juni 2006 um 16:13)

  • hmmm, komisch das das google-skript nicht funktioniert....
    bitte kopiere die Datei ie.au3 auch mal in das Verzeichnis ..\Beta\includes und
    poste mal die genaue Fehlermeldung, die Du angezeigt bekommst. Vielleicht kann ich das Problem dann besser nachvollziehen.

    Zitat

    gibt es denn keine möglichkeit ein bestimmtes word zu makieren?


    Eine Möglichkeit Wörter zu markieren habe ich ja schon vorgestellt. Allerdings brauchst Du das gar nicht, wenn Du nur wissen willst, ob ein Feld vorhanden ist oder nicht. Du kannst Das Feld auch direkt ansprechen und dann prüfen ob ein Objekt erstellt wurde (siehe mein letztes Skript).

    Zitat

    Das script findet kein object liegt das an den frames?


    Google verwendet keine Frames, von daher kann das nicht der Fehler sein ;)

    ... ach ja ... welche InternetExplorer-Version benutzt Du?

  • Sry ich meinte das google script funktioniert aber meins nicht....

    IE.au3 hab ich schon nach beta/includes kopiert


    ich benutze IE 6 mit sp2


    Wenn ich dein script anpasse und ausführe kommt keine reaktion, meine seite verwendet frames kann es daran liegen?

  • aaaaah jetzt ja :)

    die Frames werden das Problem sein, das hast Du Recht ;). Aber auch dafür gibt es in der UDF die passenden Funktionen. Bitte poste den Namen des Frames, in dem sich das Feld der begierde befindet, dann passe ich das Skript nochmal an.

  • @GunFood

    war mir auch aufgefallen, da das google-skript läuft, gehe ich mal davon aus, das es zweimal ein schreibfehler ist :musik2:...

  • Sorry ich kenn mich mit html nicht aus, denn "name" von dem gesuchten feld konnte ich auch nur mit deinem beispiel finden :)


    Wo finde ich den Frame namen? steht vorher ein spezialer tag?

    IE.au3 funktioniert, deine scripte funktionieren auch beim ausführen nur das sie das gesuchte feld nicht finden, ich hab auch schon versucht mit mouseclick vorher auf den richtigen frame zu klicken aber hatt auch nix geholfen (um ihn zu "makieren")


    Ps: dein script um per suche das gesuchte wort zu makieren hatt zwar funktioniert aber sobald ich die suche geschloßen habe und 2 mal TAB gedrückt habe sprang die makierung nicht vom makierten wort weiter sondern fing wieder ganz oben an....

    • Offizieller Beitrag

    Naja nicht wenn er das Google Script in einer Extra Datei hat und es neu getippt bzw copy&paste hat.
    Das würde für einen Tippfehler im Script sprechen. Am besten einfach im nächsten Beitrag anhängen, dann kann man nochmal selbst nach Fehlern suchen.
    Den Framenamen findest du, wenn du direkt nach dem Seitenaufruf den Quelltext anzeigen läßt.
    Da sollte was von Frameset stehen mit den entsprechenden Dateinamen. Die Namen einfach durchprobieren, dann solltest du schnell die finden, die das Feld zur Eingabe enthält.

  • Hab nix gefunden, unter frameset, aber ich geh davon aus das der richtige frame "hauptframe" heist weil der linke frame irgentwas von "hauptframe" erzählt :D


    Das das IE.au3 nicht ging lag daran das ich erst Toggle AU3 Beta.au3 ausführen dann hatts auf anhieb geklappt

  • Moin Moin,

    ich habe das Skript nochmal angepasst. Jetzt sollte es auch mit Deinem Frameset klappen. Vorausgesetzt Feldname und Framename stimmen ;).
    Den Namen der aufzurufenden Website mußt Du natürlich auch noch anpassen :musik2:

    Code
    #include <IE.au3>
    Dim $oIE = _IECreate()	;InternetExplorer-Object erzeugen
    _IENavigate($oIE, "http://www.deineseite.de",1)	;Eine bestimmte Seite wird abgerufen
    $oFrame = _IEFrameGetObjByName($oIE, "hauptframe") ;Frame-Objekt erzeugen
    if not (@error = 1) then ;wenn kein Fehler aufgetreten ist...
    	Dim $oElement = _IEGetObjByName ( $oFrame, "all203") ;Object für das Feld erzeugen.
    	if (@error = 0) then
    		_IEFormElementSetValue ( $oElement, "autoit" ) ;autoIt in das Feld schreiben
    	EndIf
    Endif
  • @jonk, ich hab dein Script ausprobiert, leider hatt es nichts gefunden, ich habe gestern mal unseren Administrator um Rat gefragt er meinte das das alles nicht so einfach sei da das gesuchte feld wahrscheinlich mit javascript erzeugt wird und der framename sich auch wahrscheinlich in einer externen datei mit der endung .js befindet.

    Aber um das menü zu kontrollieren funktioniert es super :)
    Das menü war nemlich auch ein kleines problem da da mal ein button da war und mal nicht, ich glaube dein script funktioniert bei dem menü deshalb weil es das der standartmässig angewählte frame ist


    So nun zu der rätselslösung des hauptproblemes:

    Da alles versagt hatt und sich immer neue probleme in den weg gestellt habe ich mich gestern einmal ein paar stunden ran gesetzt und schließlich ein lösung gefunden^^

    1. wenn das script die gesuchte seite aufruft drückt es STRG+F und gibt in die suche ein spezielles wort ein, gibt es keine fehlermeldung erhöt sich $i um eins ($i ist eine schleifenvarieabel die später entscheidet wie oft tab gedrückt wird) wenn das fenster"Wort nicht gefunden" erscheint bleibt $i so wie es ist......
    2. und das so weiter mit ein paar wörtern die nur auf der seite sind wenn sich dazu auch ein button befindet
    3.Dan sind die eingabefelder nach einem bestimmten musster geordnet so das das script wenn es nun weis welcher button da ist un welcher nicht an welcher stelle sich das gesuchte eingabefled befindet
    4.Nun wird noch der quelltext nach 2 spezielen button namen durchsucht, die sich normal nicht finden lassen
    5. Nun kommt die kleine schleife die immer nur ein macht: TAB drücken und $i entscheidet wie oft


    und es funktioniert^^

    Einmal editiert, zuletzt von NixNutz (14. Juni 2006 um 07:22)

  • Hallo NixNutz,
    Schön das Du doch noch eine Lösung gefunden hast :) . Framesets per Javascript zu erzeugen dürfte nicht sehr oft vorkommen. Gerade weil Barrierefreiheit immer wichtiger wird.... und da sind Framsets und Javascript verboten ;) . Aber ich vermute mal, das Du ein Webinterface in eurem Intranet nutzt, da ist das natürlich was anderes. Trotzdem würde mich interessieren welches Produkt Ihr/Du einsetzt. *neugierig am sein* :musik2:

  • ^^

    hehe, darf ich nicht ausplaudern :P

    Ne, im ernst vielen Dank für eure Hilfe! So viel Hilfsbereitschaft und Gedult findet man heutzutage im Iinternet leider immer seltener......


    Gruß
    NixNutz

    PS: Was ist mit Barrierefreiheit gemeint?

    Einmal editiert, zuletzt von NixNutz (14. Juni 2006 um 16:22)

    • Offizieller Beitrag

    Barrierefreiheit bedeutet die uneingeschränkte Nutzung von Gegenständen, Gebrauchsgütern und Objekten durch alle Menschen über denselben Zugangsweg. Eine Zugänglichkeit über alternative Zugangswege gilt dabei nicht als barrierefrei.

    Im bezug auf Internet heisst das z.B., das auch körperlich und geistig Behinderte Menschen das Medium auf die gleiche Art nutzen können sollen wie nicht Behinderte Menschen.

    Was für ein Glück das es wikipedia gibt.