1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Mausklick und Aktion an bestimmter Stelle einer Webseite

Dieses Thema im Forum "AppleScript" wurde erstellt von iamx, 12.01.09.

  1. iamx

    iamx Golden Delicious

    Dabei seit:
    11.01.09
    Beiträge:
    9
    Hallo, ich bin neu hier und habe gleich mal eine Frage, aber zunächst zum Thema.
    Ich habe ein einfaches Skript geschrieben, welches eine bestimmte Webseite aufruft. In dieser Webseite soll nun ein Klick an einer bestimmten Stelle erfolgen, und dann eine Zahl eingegeben werden. Dieser Ablauf soll nun noch 3 mal mit Enter bestätigt werden, dann soll der Ablauf sich selbst von vorne starten. Ach ja, zwischen den Klicks sollen immer 5-6 sekunden liegen, damit sich der browser entsprechend refreshen kann.
    Ich habe so angefangen:
    property target_URL "www. ... .de"
    open location target_URL (Website wird aufgerufen)
    delay 5 (5 Sekunden, zum Aufbau der Website)
    click <--- hier liegt mein Problem... Wie geht es weiter, wie möchte apple die Koordinaten, was muss ich eingeben, um "Enter" auszulösen und wie wiederholt sich das Skript?

    Nommal zum Befehl Click : //Wie mache ich den Klick genau an diese Stelle? Die genaue Position habe ich (Bsp: 769/338) über Bildschirmfoto aufgerufen, aber wie gibt man die Koordinaten sauber an?

    Danke im Voraus für eure Hilfe ;)
     
  2. iRaszibilitus

    iRaszibilitus Boskop

    Dabei seit:
    06.12.08
    Beiträge:
    210
    ich habe mal ein java programm geschrieben das so ca das macht was du brauchst ;)
    Falls du java kannst kannst du es etwas erweitern wenn du willst.
    Frag per PM, dann schicke ich es dir.
     
  3. LittlePixel

    LittlePixel Strauwalds neue Goldparmäne

    Dabei seit:
    09.07.08
    Beiträge:
    641
    Hallo,

    ich behaupte mal, dass das gar nicht notwendig ist. ;)
    Mittels Javascript ist das sicherlich ohne GUI-Interaktionen möglich.

    Viele Grüße
     
  4. iRaszibilitus

    iRaszibilitus Boskop

    Dabei seit:
    06.12.08
    Beiträge:
    210
    Gibt viele Möglichkeiten das zu machen.
     
  5. LittlePixel

    LittlePixel Strauwalds neue Goldparmäne

    Dabei seit:
    09.07.08
    Beiträge:
    641
    ... und GUI-Scripting sollte immer die letzte Lösung sein. ;)

    Viele Grüße
     
  6. Bomberzocker

    Bomberzocker Auralia

    Dabei seit:
    08.06.08
    Beiträge:
    202
    du kannst dsa mti nenm repeat machen. z.b.
    das kliken eght irgendwie in die richtung: click at {"769/338"}
    mehr weiss ich zum klicken auch nciht.
    Ich hoffe ich konnte nen bisschen helfen.
     
  7. iamx

    iamx Golden Delicious

    Dabei seit:
    11.01.09
    Beiträge:
    9
    Phat danke an alle, die bisher geantwortet haben... Java ist für mich noch ein Buch mit sieben Siegeln, würde es echt gerne so mitm Apple Script umsetzen. Ich habe mich jetzt konkret entschieden, wie es ablaufen soll, nämlich so:

    Safari öffnen, Webseite aufrufen - ! open location...
    Kurze Wartezeit - ! delay ...
    1 Mausklick an bestimmter Stelle - ! click at ...

    Ziffer einfügen - ???

    1 Mausklick an bestimmter, anderer Stelle - "
    Kurze Wartezeit - "
    1 Mausklick an bestimmter , wiederum anderer Stelle - "
    Kurze Wartezeit - "

    Dann das ganze von vorne, entweder mit Repeat, wie oben erwähnt, oder vllt. schreibe ich das Skript auch ein paar mal und lass es immer vom jeweils anderen öffnen, ginge das?
    So auf die Art: Skript A läuft wie oben, ist fertig und öffnet Script B, das, wenn es auch am Ende angelangt ist, Skript C öffnet, welches dann wieder Skript A öffnet, usw. Timeout müsste ich ausrechnen, sollte allerdings schon paar Minuten laufen ohne zu laggen. Die Skripts würden sich hierbei nur in den Koordinaten der Maus ein wenig unterscheiden. Kewl wäre es natürlich, wenn jmd sowas als Java Prog hätte, oder ginge das auch einfach mit Delphi, Stichwort "Klicktrainer"!? In der Art, dass man die Koordinaten der auszuführenden Klicks jedesmal frei eingeben kann und das eine gewünschte Anzahl an Wiederholungen durchliefe, premium natürlich mit der Möglichkeit, eine Ziffer nach einer bestimmten Aktion einzufügen, aber sowas muss man halt selber machen... Mal schauen, evtl. hat hier ja wieder jmd n Tipp/Kritik zur Umsetzung.


    g iamx
     
    #7 iamx, 12.01.09
    Zuletzt bearbeitet: 12.01.09
  8. iamx

    iamx Golden Delicious

    Dabei seit:
    11.01.09
    Beiträge:
    9
    <script> versteht die Nachricht click nicht <:(
     
  9. LittlePixel

    LittlePixel Strauwalds neue Goldparmäne

    Dabei seit:
    09.07.08
    Beiträge:
    641
    Hallo,

    ich bin mir sicher, dass sich Dein Problem ohne GUI-Scripting lösen lässt. Dieses Ziel solltest Du eigentlich auch anstreben.

    Hier ein Beispiel, wie Du Javascript mit AppleScript verwendest: http://www.apple.com/applescript/archive/safari/jscript.02.html

    Angewöhnen solltest Du Dir auch, dass Du immer Deinen bereits entworfenen Code zur Verfügung stellst. Somit können alle Nutzer einen Blick hineinwerfen und profitieren auch noch von dem "entwickelten" Code.

    Nur "click" bringt Dich nicht weiter. Hast Du Dir Beispiele angesehen?

    http://www.apple.com/applescript/uiscripting/

    Nein, natürlich nicht.

    Code:
    tell application "Safari" to activate
    tell application "System Events" to tell process "Safari" to click at {0, 0}
    Das ist nämlich schon alles! ;)

    Aber meines Erachtens die schlechteste Möglichkeit der Umsetzung.

    Viele Grüße
     
  10. Bomberzocker

    Bomberzocker Auralia

    Dabei seit:
    08.06.08
    Beiträge:
    202
    wohl mit "click at" :)
     
  11. Schniko

    Schniko Pomme Etrangle

    Dabei seit:
    01.08.08
    Beiträge:
    902
    Was ist es denn für eine Seite und was genau passiert dadurch? In der Regel ist so etwas nicht gestattet oder anders lösbar.
     
  12. iamx

    iamx Golden Delicious

    Dabei seit:
    11.01.09
    Beiträge:
    9
    So, erlaubt ist es, sonst würde ich im Forum nicht danach fragen.
    Ich habe das Problem mittlerweile dank eurer Hilfestellungen "zufriedenstellend" gelöst.
    Nun noch eine kleine Schönheitssache : Wie erreicht man, dass Apple Script im Hintergrund läuft?
    Das Skript läuft nämlich ätzend lange und ich würde gerne andere Programme im Vordergrund laufen lassen. Es ist so, dass das Skript immer das Fenster im Vordergrund ansteuert, lässt sich dies denn ändern?
    In einem ähnlichen Beitrag, den ich über die SuFu gefunden habe, wurde keine Lösung gefunden, dort gings aber auch ums Icon im Dock, also vllt. weiß jmd. was?
     
  13. LittlePixel

    LittlePixel Strauwalds neue Goldparmäne

    Dabei seit:
    09.07.08
    Beiträge:
    641
    Hallo,

    und wieder lässt Du niemanden an Deinem Code teilhaben.
    Wie ist es uns möglich Dir da zu helfen? ;)

    Ich könnte fast wettern, Du hast es via GUI-Scripting realisiert.
    Somit ist Deine Frage, eher eine rhetorische Frage. Überlege nochmals...

    GUI-Scripting ist nichts anderes, als würdest Du die Klicks und Anweisungen durchführen.
    Somit kann es gar nicht im Hintergrund laufen. ;)

    Viele Grüße
     
  14. iamx

    iamx Golden Delicious

    Dabei seit:
    11.01.09
    Beiträge:
    9
    Huch, ich dachte, es wäre klar, wie ich den Code realisiert habe.
    Und ja, ich habe selbstständig nach dem Click Befehl gesucht, dies lieferte aber sowohl in deutsch, als auch in englisch, nur unbefriedigende Ergebnisse. Schließlich habe ich es ohne klick realisiert.

    Hier der Code:


    property target_URL : "entsprechende Website"

    open location target_URL

    delay 5


    tell window 1
    tell application "System Events"
    tell process "Safari"

    tell window 1
    delay 1
    keystroke tab & tab &... & Zahl
    end tell



    delay 1

    tell window 1
    keystroke return
    end tell


    tell window 1
    keystroke return
    end tell


    delay 5

    tell window 1
    keystroke tab & tab & return
    end tell

    end tell
    end tell

    end tell

    delay 5
     
  15. Goidma

    Goidma Rheinischer Krummstiel

    Dabei seit:
    07.09.08
    Beiträge:
    377
  16. Goidma

    Goidma Rheinischer Krummstiel

    Dabei seit:
    07.09.08
    Beiträge:
    377
    doppelt gepostet, sry
     
  17. Goidma

    Goidma Rheinischer Krummstiel

    Dabei seit:
    07.09.08
    Beiträge:
    377
    Hallo liebe AppleScripter!

    Ich bin Newbe bei appleScript und möchte die wohl einfachste Frage stellen:
    Wie simuliert man das Drücken einer Taste??
    wäre nett, wenn ihr es anhand eines Beispiels formulieren könntet
    danke im Voraus;)
     
  18. SaschaHB

    SaschaHB Erdapfel

    Dabei seit:
    12.02.09
    Beiträge:
    2
    Also zu simulieren einer Taste nehme ich entweder: key code 48,
    was zum beispiel die TAB-taste wäre,(was auf welcher Taste ist, einfach mal nach der Keycode Tabelle suchen)
    für ganze Wörter benutze ich: Keystroke "blabla"
     
  19. SaschaHB

    SaschaHB Erdapfel

    Dabei seit:
    12.02.09
    Beiträge:
    2
    Ich habe da auch mal ein Frage, die ich schon oft gelesen habe, allerdings mit all den Antworten nichts anfangen konnte. Es geht mal wieder darum mit Applescript ein Mausklick auf einer Website zu machen.
    Also ich benutze den Automator und habe Mac OS X Tiger.

    Beispielsweise habe ich das klicken bei iCal versucht, was mir aber mit diesem Programm nicht gelang:

    tell application "iCal" to activate
    tell application "System Events"
    tell process "iCal"
    delay 2
    click at {500, 600}
    end tell
    end tell

    auch über cliclick habe ich schon was gelesen bzw. es versucht, was mir auch nicht gelang:

    property cliclickPath : desktop/cliclick
    tell application "Safari"
    tell application "System Events"
    tell process "Safari"
    set winPos to position of window 1
    set objPos to {25, 60} --bei mir ist dort der Bookmarks-Button
    set xPos to (item 1 of winPos) + (item 1 of objPos)
    set yPos to (item 2 of winPos) + (item 2 of objPos)
    set clickcommand to (cliclickPath & " " & xPos & " " & yPos)
    do shell script clickcommand --click ausführen
    end tell
    end tell
    end tell

    hier kommt die Meldung das cliclick nicht definiert ist

    wenn ich es wegnehme kommt es bei position zur nächsten Fehlermeldung:
    „System Events“ hat einen Fehler erhalten: NSReceiverEvaluationScriptError: 4

    nun habe ich das Program mal einfach etwas reduziert:

    property cliclickPath : desktop
    tell application "Safari"
    tell application "System Events"
    tell process "Safari"
    set objPos to {25, 60} -- bei mir ist dort der Bookmarks-Button
    set xPos to (item 1 of objPos)
    set yPos to (item 2 of objPos)
    set clickcommand to (cliclickPath & " " & xPos & " " & yPos)
    do shell script clickcommand -- click ausführen
    end tell
    end tell
    end tell

    aber auch hier eine Fehlermeldung:
    „System Events“ hat einen Fehler erhalten: {desktop folder, " ", 25, " ", 60} kann nicht in Typ string umgewandelt werden.
    was mir garnichts sagt-.-

    Nun einfach mal die Simple frage, ob es überhaupt möglich ist mit applescript ein Mausklick auszuführen?
    Oder ob es erst unter Leopard geht? Ich habe auch etwas von einer recording Funktion im Automator gelesen, aber die gibt es womöglich auch erst unter Leopard oder?
     
  20. iamx

    iamx Golden Delicious

    Dabei seit:
    11.01.09
    Beiträge:
    9
    Zu der simplen Frage eine simple Antwort, keine Ahnung. Google mal danach, die Ergebnisse auf Englisch sind hilfreich, führten mich aber auch nicht zum Ziel.
    Die Recorder Funktion unter Leopard habe ich für den Klick auch ausprobiert, er recordet schlicht gesagt nichts, der aufgezeichnete Mausklick erscheint nicht in den Befehlen.
     

Diese Seite empfehlen