Doch, dann kommt nach ca. einer eeeewigen Zeit ein TimeOut
Das passiert wenn:
1) MozRepl nicht installiert bzw. nicht aktiv ist
2) Eine Firewall die Verbindung blockiert.
[EDIT]
siehe auch:
https://autoit.de/index.php?page=Thread&threadID=13983
Doch, dann kommt nach ca. einer eeeewigen Zeit ein TimeOut
Das passiert wenn:
1) MozRepl nicht installiert bzw. nicht aktiv ist
2) Eine Firewall die Verbindung blockiert.
[EDIT]
siehe auch:
https://autoit.de/index.php?page=Thread&threadID=13983
"Socket error" bedeutet, daß keine Verbindung zu FireFox besteht.
Die mußt Du in Deinem Programm schon auch noch herstellen, sonst wissen die Funktionen nicht "mit wem sie reden sollen" ...
Entweder mit _FFStart oder _FFConnect.
z.B.
[autoit]#include <FF.au3>
If _FFConnect() Then
_FFSetValue("bla", "userid", "name")
_FFSetValue("test", "password", "name")
_FFFormSubmit()
EndIf
Was gibt es denn für Meldungen in der Console? Damit sollte sich bei der FF.au3 meist jedes Problem lösen lassen.
Funktioniert doch, außer dem Absenden, da war der Name falsch geschrieben.
[autoit]_FFSetValue("bla", "userid", "name")
_FFSetValue("test", "password", "name")
_FFFormSubmit()
wenn es dennoch nicht geht, was für Meldungen stehen denn in der Console des Editors?
Bzw. ruft es meist etwas unvermutete Sachen hervor, wenn, wie in dem Fall, der Name bzw. die ID den Namen einer Methode tragen: "Submit"
... dann funktioniert form.submit() nicht mehr.
Hallo,
wenn es nicht embedded sein muß, dann ja.
Wäre dann im Groben:
#include <FF.au3>
[/autoit] [autoit][/autoit] [autoit]_FFStart("http://newmt2-reloaded.eu/shop.php")
[/autoit] [autoit][/autoit] [autoit]If _FFIsConnected() Then
_FFSetValue($sUserID, "userid", "name")
_FFSetValue($sPassWort, "password", "name")
_FFFormSubmit("login", "name")
; oder wenn es nur ein Formular gibt:
;_FFFormSubmit()
EndIf
"Vorschau" auf V0.6:
http://thorsten-willert.de/Themen/FFau3/Testversion/FF_06.au3
- Removed: _FFSetValueById, _FFSetValueByName ==> _FFSetValue
- Removed: _FFGetValueById, _FFGetValueByName ==> _FFGetValue
- Removed: _FFFormGetLength ==> _FFGetLength
- Removed: _FFTabGetLength ==> _FFGetLength
- Removed: _FFTableGetCell ==> _FFXpath
- Removed: _FFDisPatchKeyEvent ==> _FFDisPatchEvent
- Removed: _FFFormGetElementsLength: now only returns the DOM-standard length
Wäre eine Möglichkeit.
Momentan bin ich gerade eh am verkleinern - weniger, dafür universellere Funktionen.
Normalerweise kann das jeder Browser schon seit zig Jahren, wenn man es nicht abschaltet ...
Die Funktion existiert auch nur, weil es unzählige Threads gibt in denen immer wieder die Frage auftaucht, wie baue ich ein Einlog-Script für Seite XY?? Und dann meist noch von Leuten denen man erst mal HTML erklären, muß damit die überhaupt wissen von was man redet ...
Jetzt frag mich nicht warum manche Leute ihren Browser nicht bedienen können ... oder nicht so einstellen, daß der das für sie macht ...
Ja schon klar.
Im Prinzip ist die Funktion schon fast eingebaut nämlich in _FFFormSubmit - funktioniert nur nicht
Zudem fallen in der nächsten Version mindestens 5 Funktionen raus ...
Und du siehst ja sicher selbst - obwohl es so Funktionen schon gibt - tauchen immer wieder Leute auf die diese nicht nutzen.
In diese Funktionssammlung scheinen leider auch die wenigsten rein zusehen. Im Endeffekt möchte ich mir einfach die Arbeit von zig sinnlosen Anfragen ersparen ...
Soll eine Funktion wie die dort:
https://autoit.de/index.php?page=Thread&threadID=14368
in die FF.au3 eingebaut werden.
Allerdings ohne Rückgabe eines fertigen Einlog-Scriptes!
Wieder was zum Ausprobieren V0.5.3.11b-1:
http://thorsten-willert.de/Themen/FFau3/Testversion/FF.au3
- Added: _FFAu3Option($sOption[, $vValue = ""]) - nur zur leichteren Handhabung der globalen Parameter-Variablen
- Changed: _FFFormCheckBox, _FFGetElementsLength, _FFFormOptionSelect, _FFFormRadioButton:
added form-selection via "action" and "title" - _FFFormSubmit und _FFFormReset folgt noch
- Removed: _FFLoadWaitTimeOut(...) - hat sich mit _FFAu3Option erledigt
- Removed: Global $_aFF_ERRORS
_FFGetPosition wurde in der letzten offiziellen Version schon etwas reduziert eingebaut.
Viel Spaß damit!
Hallo,
was genau meinst du mit:
Zitataber sobald ich _FF mache kommt weiter nichts
???
Interessant, sollte man dann wirklich drauf achten.
Somit ist dann wohl auch die in allen UDF geübt Praxis $VON_SUPER_LANGEN_KONSTANTEN_NAMEN zu hinterfragen?
Also besser einen Kommentarblock, in dem man seine Variablennamen erklärt und dann kann man sich kurz halten.
Sieht fast so aus.
Der "Compiler" scheint keinerlei Optimierungen in Bezug auf Konstanten vorzunehmen.
Das hier:
$t = TimerInit()
Global Const $integer_das_ist_die_eine_zahl = 1
$iZ = 0
For $ii = 0 To 1000000
$iZ += $integer_das_ist_die_eine_zahl
Next
$t1 = TimerDiff($t) & @crlf
$t = TimerInit()
Global Const $iC = 1
$iZ = 0
For $i = 0 To 1000000
$iZ += $iC
Next
$t2 = TimerDiff($t) & @crlf
$t = TimerInit()
$iZ = 0
For $i = 0 To 1000000
$iZ += 1
Next
$t3 = TimerDiff($t) & @crlf
MsgBox(0,"", $t1 & $t2 & $t3)
[/autoit]
ist im kompilierten Zustand leider auch nicht besser, als unkompiliert.
Eine Möglichkeit bei Konstanten wäre noch diese, einfach vor dem Kompilieren komplett durch die Werte zu ersetzen.
Aber lohnt sich das? Normalerweise werden diese ja nicht so intensiv und häufig innerhalb des Programms verwendet.
Bei der MatheEX-UDF ist mir es gerade wieder eingefallen:
eewig lange Variablen Namen wie " $number_mathex_temp"
Die sind bei einem Interpreter wie AutoIt natürlich suboptimal.
Bei einer Diskussion im englischen Forum wurde dieses "Problem" bezüglich des Obfuscators schon mal besprochen,
bzw. eines Programms Namens "AutoIt Optimize":
http://www.autoitscript.com/forum/index.php?showtopic=100087&st=0&p=717275
Hier noch mal ein ganz simpler Test:
[autoit]$t = TimerInit()
$integer_das_ist_die_eine_zahl = 0
For $integer_zaehler = 0 To 1000000
$integer_das_ist_die_eine_zahl += $integer_zaehler
Next
ConsoleWrite( TimerDiff($t) & @crlf)
$t = TimerInit()
$iZ1 = 0
For $i = 0 To 1000000
$iZ1 += $i
Next
ConsoleWrite( TimerDiff($t) )
auf meinem Rechner läuft die erste Schleife im Schnitt 30%! langsamer ab, als die zweite.
Also bei großen Schleifen und Sachen wo die Geschwindigkeit eine Rolle spielt, immer schön kurze Namen wählen.
Kleines Update auf V0.3:
- nochmal ein paar Zeilen weniger
V0.5.3.10b:
- Added: _FFGetPosition($sElement = "")
- Changed: _FFLoadWait: Removed parameter $iDelay !!!
- Changed:__FFStartProcess: error-messages
- Fixed: _FFFrameEnter: error using a non string-var with $sMode="name"
- Fixed: _FFWindowGetHandle: error by resetting the title
- Fixed: Errors with _FFObj and _FFObjGet
Documentation:
- Added: _FFDisPatchEvent
- Added: _FFImageMapClick
- Added: _FFSetValue
- Added: _FFGetPosition
- Update: _FFFrameEnter
- Update: _FFImageClick
- Update: _FFImagesGetBySize
Viel Spaß damit!