Also da das Problem weiterhin besteht, bin ich nun wieder auf Windows 7 runtergegangen und habe jetz keine probleme mehr, wórin der Unterschied liegt kann ich nicht erkennen aber auf Windows 7 funktioniert es 1A.
Beiträge von Serekay
-
-
Hallo zusammen,
Stilgart hatte hier einmal eine Funktion gepostet, bei der das fertig Laden der Seite mittels _FFLoadWaitASYNC() überprüft wurde.
Das ganze hatte auf meinem Window 7 Rechner auch super geklappt in verbindung mit Firefox 15.0.1 portable
jetz benutze ich Windows 8 und Firefox 15.0.1 portable
Jetz hab ich aber das problem, das er dennoch scheinbar nicht wartet bis alles geladen hat sondern dennoch weitermacht.
Ich benutze es in folgender verbindung:
Code_FFClick(_FFXpath("//*[@id='pirateCaptureBox']/div[1]/table/tbody/tr[" & $Capturemode & "]/td[5]/a", "", 9)) _FFLoadWaitASYNC()
Wie man sieht arbeite ich mit der FFau3. da nach dem klick auf den Button die Seite an sich nicht neu geladen wird geht _ffloadwait() nicht, es wird mit Ajax etwas aktualisiert, dann überprüfe ich ob das element nach dem klick vorhanden ist, arbeite ich mit sleep, dauert das bei vielen Aktionen einfach zu lange.
hier ist der Code zur Funktion von Stilgart:
Spoiler anzeigen
Code
Alles anzeigen; #FUNCTION# =================================================================== ; Name ..........: _FFLoadWaitASYNC ; Description ...: Wait while the page is loading (AJAX) ; Beschreibung ..: Wartet bis die Seite geladen ist. (AJAX) ; AutoIt Version : V3.3.0.0 ; Syntax ........: _FFLoadWaitASYNC([$iDelay = 0[, $iTimeOut = 20000]]) ; Parameter(s): .: $iDelay - Optional: (Default = 0) : Delay before and after waiting in ms ; $iTimeOut - Optional: (Default = 20000) : Timeout while waiting in ms ; Return Value ..: Success - 1 ; Failure - 0 ; @ERROR - ; @EXTENDED - loading time in ms ; Author(s) .....: Thorsten Willert ; Date ..........: Tue Aug 04 21:38:42 CEST 2009 ; Link ..........: ; Related .......: _FFDialogWait, _FFLoadWait ; Example .......: No ; ============================================================================== Func _FFLoadWaitASYNC($iDelay = 0, $iTimeOut = 20000) Local $sFuncName = "_FFLoadWaitASYNC" Local $iLoadingTime = 0, $i = 0 Local $bTrace = $_FF_COM_TRACE $_FF_COM_TRACE = False Local $TimeOutTimer = TimerInit() Sleep($iDelay + $_FF_CON_DELAY) While TimerDiff($TimeOutTimer) < $iTimeOut If _FFCmd("gNavigatorBundle.getString('nv_done') == XULBrowserWindow.statusTextField.label ? 1 : 0") Then $i += 1 If $i > 4 Then $iLoadingTime = Round(TimerDiff($TimeOutTimer)) Sleep($_FF_CON_DELAY + 25) $_FF_COM_TRACE = $bTrace ;msgbox(0,"","Hat geklappt mit dem Laden") Return SetError(0, $iLoadingTime - $_FF_CON_DELAY - 25 - $iDelay, 1) EndIf Sleep(250) Wend Return SetError(__FFError($sFuncName, $_FF_ERROR_Timeout, "Can not check site status."), $iLoadingTime,0) EndFunc ;==> _FFLoadWaitASYNC
Vllt kann mir ja einer auf die sprünge helfen, was ich ändern kann damit es zuverlässiger arbeitet?
grüße Tobi