Hallo,
da ich bei meinem ersten Script nicht so recht weitergekommen bin , (dort ist das GUI wohl in einem XML versteckt und kann nicht durch AutoIt und FF.au3 interpretiert werden, siehe [ offen ] Newbie, mein erstes Script: Wie komme ich an den "Neu" Button? Firefox und FF.au3 )
habe ich nun mal versucht, eine Nachricht über die AutoIt "Private Nachrichten" zu erstellen. Dies geht auch schon besser und ich lerne von Zeile zu Zeile dazu.
Hier der Code des Skriptes:
Spoiler anzeigen
#region Includes
#include <FF.au3>
#endregion Includes
$sUserName = "kkarsten62"
$sPassWord = "**********"
$sTo = "kkarsten62"
$sSubject = "Mein zweites Script"
$sBodyText = "Mein Bodytext"
$Socket = _FFConnect()
[/autoit] [autoit][/autoit] [autoit]If $Socket > -1 Then
_FFOpenURL($Socket, "http://www.autoit.de")
_FFSetValueByName($Socket,"loginUsername", $sUserName)
_FFSetValueByName($Socket,"loginPassword", $sPassWord)
_FFFormSubmit($Socket)
#cs
In FF "Extras/Einstellungen.../Sicherheit/Passwörter speichern" mal zum Testen eingestellt
um das Verhalten bei einem weiteren parallelen Fenster zu beobachten ...
#ce
If WinExists("Bestätigen") Then
WinClose("Bestätigen") ; <== Wäre hier ein WinKill ggf. besser, schneller?
;MsgBox(0, "", "Window exists")
Else
; MsgBox(0, "", "Window not exists")
EndIf
; sleep(15000) ; hhmm, verstehe hier das Zusammenspiel der beiden Fenster nicht so recht ...
_FFLoadWait($Socket, 15000, 25000) ; Warum muss hier ein delay von ~15 sec. sein?
_FFClickLink($Socket, "http://www.autoit.de/index.php")
_FFLoadWait($Socket, 0, 10000)
_FFClickLink($Socket, "http://www.autoit.de/index.php?page=PMList")
_FFLoadWait($Socket, 0, 10000)
_FFClickLink($Socket, "http://www.autoit.de/index.php?form=PMNew")
_FFLoadWait($Socket, 0, 10000)
_FFSetValueByName($Socket, "recipients", $sTo)
_FFSetValueByName($Socket, "subject", $sSubject)
_FFClickLink($Socket, "Quellcode", "text") ; Klick auf Quellcode, sonst wird der Bodytext ignoriert, hhmm?!
; _FFClick($Socket, '.links[46]') ; Ändern sich eigentlich die indizes?, erst war es 48 dann 46, hmm ...?
_FFSetValueByID($Socket, "mce_editor_0_codeview", $sBodyText)
_FFSetGet($Socket, ".forms[3].elements[23].click()") ; als "Entwurf speichern", geht aber nicht?
; document.forms[3].elements[23].click() <== so sieht der Befehl in MozRepl aus und funktioniert dort! ...
; _FFClick($Socket, ".forms[3].elements[23]") ; Wie geht der "Entwurf speichern" Button zu betätigen, ist diese eine Alternative ?
; _FFLoadWait($Socket, 0, 10000)
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit]Zwei Sachen komme ich nicht so recht weiter:
- Synchronisation von einem Popup Fenster und der FF-Seite. Zur Übung habe ich mal die FF Funktion "Extras/Einstellungen.../Sicherheit/Passwörter speichern" eingestellt. Nach dem Submit des Login erscheint dann ein Window um das Passwort zu verwalten. Es geht zwar, jedoch verstehe ich den Ablauf nicht so ganz. Zu dem ist das ganze recht langsam.
Meine Frage ist nun: Wer ruf hier wen auf und warten dann auf wen? - Ich möchte die Nachricht abschliessend als Draft speichern. in MozRepl funktioniert der Befehl
document.forms[3].elements[23].click()
Wie sieht denn nun der Befehl in AutoIt aus? ich habe mehrere Varianten versucht, funktionieren aber alle nicht.
Vielen Dank für eine Hilfe.
kkarsten62