Statusbar bei Firefox auslesen

  • Hallo, liebe AutoItgemeinde,

    Da is unter win10 mit FF.au3 und Co. nicht mehr so richtig klappen will, rufe ich meine Standardbrowser Firefox per Run() oder ShellExecute() auf.

    Die Scripts funktionieren auch alle. Nur leider muss immer wieder ein Sleep(...) eingebaut werden, damit die die zu übermittelnden Befehle auch an der richtigen Stelle zur richtigen Zeit ankommen. Um diese Pause - im nachfolgendem Script 11 Sekunden zu umgehen, würde ich gerne die Statusbar des FF kontrollieren, insoweit, die nachfolgenden Befehle erst dann ausgeführt werden, wenn der $_string_Statusbar = "" ist (While/WEnd).

    #NoTrayIcon
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Icon=..\..\..\Icons\FreeStyleLibre.ico
    #AutoIt3Wrapper_AU3Check_Stop_OnWarning=y
    #AutoIt3Wrapper_Run_Tidy=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

    #include <MiPsIsInetConn.au3>
    #include <misc.au3>
    #include <String.au3>

    Opt('SendKeyDelay', 30)
    Opt('WinTitleMatchMode', 2)
    Opt('MustDeclareVars', 1)

    _loadingFreeStyleLibreFFox()

    Exit

    Func _loadingFreeStyleLibreFFox()
    Local $_width = ((@DesktopWidth * 80) / 100), $_hight = ((@DesktopHeight * 90) / 100)
    Local $_x = (@DesktopWidth / 2) - ($_width / 2), $_y = 0
    Local $_SiteName = 'Freestyle Libr' & Chr(233)
    Local $_url = 'https://www.freestylelibre.de/libre/mein-konto.html'
    Local $_urlName = 'Anmelden | FreeStyle Libre'
    Local $_SplashText = 'Bitte warten' & @CRLF & @CRLF & '"' & $_SiteName & '" wird geladen ...'
    If Not _Singleton(@ScriptName, 1) Then
    MsgBox(48, $_SiteName, 'Der Prozess Aufruf "' & $_SiteName & '" ist bereits gestartet.' & @CRLF & _
    'Der erneute Aufruf wird daher beendet.')
    Exit
    EndIf
    _Test_Inet_Connection()
    Local $_FFPath = RegRead('HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe', '')
    If $_FFPath = '' Then
    MsgBox(48, $_SiteName, 'Es ist ein genereller Fehler aufgetreten.' & @CRLF & _
    'Bitte prüfen Sie, ob "Mozila Firefox" installiert ist.')
    Exit
    EndIf
    If ShellExecute($_FFPath, '-new-window ' & $_url, '', 'open') Then
    WinWait($_urlName, '')
    WinSetState($_urlName, '', @SW_HIDE)
    SplashTextOn('', $_SplashText, 300, 100, -1, -1, 33, '', -1, 900)
    Sleep(11000)
    ControlSend($_urlName, '', '', '{Tab 13}', 0)
    Sleep(100)

    ControlSend($_urlName, '', '', '[Benutzername]{TAB}', 0)
    Sleep(100)
    ControlSend($_urlName, '', '', [Passwort]', 1)
    Sleep(100)
    ControlSend($_urlName, '', '', '{Tab 2}{ENTER}', 0)
    WinMove($_urlName, '', $_x, $_y, $_width, $_hight)
    SplashOff()
    WinSetState($_urlName, '', @SW_RESTORE)
    WinActivate($_urlName, '')
    Else
    MsgBox(48 + 262144, $_SiteName, 'Es ist ein genereller Fehler aufgetreten.' & @CRLF & _
    'Das Konto bei "' & $_SiteName & '"' & _
    'kann nicht automatisch geladen werden.' & @CRLF & _
    'Bitte rufen Sie "' & $_SiteName & '" manuell auf.')
    WinClose($_urlName, '')
    EndIf
    EndFunc ;==>_loadingFreeStyleLibreFFox

    Func _Test_Inet_Connection()
    Local $_dlgText
    $_dlgText = 'Es besteht zur Zeit keine Internetverbindung.' & @LF & @LF & 'Bitte stellen Sie erst eine Internetverbindung her' & @LF & _
    'und starten Sie das Programm dann erneut.'
    If Not _CheckInet() Then
    MsgBox(16, 'FreeStyle Libr' & Chr(233), $_dlgText)
    Exit
    EndIf
    EndFunc ;==>_Test_Inet_Connection

    Vielleicht hat ja jemand 'ne clever (vielleicht auch koplett andere, Idee.

    Vielen Dank ...

    AutoItler

    Lege dich nie schlafen ohne zu wissen,
    dass du an diesem Tag etwas Gutes getan hast.

    Einmal editiert, zuletzt von AutoItler (5. September 2018 um 01:00)

  • Hallo AutoItler

    Dein Problem steht wohl nicht im Zusammenhang mit Windows 10, sondern mit den Änderungen in Firefox Quantum. Unter anderem wurden bei dem großen Update XUL-Plugins unbrauchbar, wodurch Mozrepl nicht mehr funktioniert.

    Du könntest also falls möglich auf IE-Funktionen umsteigen oder auf eine Vor-Quantum Version des Firefox wechseln oder besser die Webdriver UDF zur Firefox-Steuerung ausprobieren.

    Du findest sie hier.

    Grüße autoiter

  • Hallo Autoiter,

    Dank für die prompte Antwort. Das Script für den IE ist fertig und läuft, da gab es keine Probleme. Ich arbeite aber nun mal viel lieber mit dem FF. Daher die Frage, ob man dort die Statusbar auslesen kann und wenn ja, wie. Bei der Verwendung von Webdriver UDF fehlen mir die Erfahrungen. Habe noch nie in dieser Richtung "geskriptet". Also kann man oder kann man nicht, auslesen die Staturbar vom FF?

    Lege dich nie schlafen ohne zu wissen,
    dass du an diesem Tag etwas Gutes getan hast.