Firefox automatisieren

  • Und als Startpunkt das Tutorial im wiki.

  • @drnatas:

    Du brauchst die entsprechenden Webdriver von hier "https://www.autoitscript.com/forum/topic/191990-webdriver-udf-w3c-compliant-version-05252020/" und die

    Webdriver Source von Danp2 für Autoit https://github.com/Danp2/WebDriver/releases/tag/0.3.0.1

    Hier mal ein Beispiel von einem Autologin der Website Slidepresenter

    Spoiler anzeigen

    #include "wd_helper.au3"

    #include "wd_core.au3"

    #include <MsgBoxConstants.au3>

    $file = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"

    If FileExists($file) Then

    $Fileversion = FileGetVersion($file)

    ;------------------------------------------------------------------

    ;Abfrage der google Chrome Version, danach setze den entsprechenden Chromedriver, falls ein Client noch nicht den aktuellen Chrome benutzt. -> umgebaut auf dynmische abfrage

    ;~ IF StringLeft($Fileversion,2) = "76" Then $webdriver = "chromedriver_76.exe"

    ;~ IF StringLeft($Fileversion,2) = "77" Then $webdriver = "chromedriver_77.exe"

    ;~ IF StringLeft($Fileversion,2) = "78" Then $webdriver = "chromedriver_78.exe"

    ;~ IF StringLeft($Fileversion,2) = "79" Then $webdriver = "chromedriver_79.exe"

    ;~ IF StringLeft($Fileversion,2) = "80" Then $webdriver = "chromedriver_80.exe"

    ;------------------------------------------------------------------

    ; dynmische abfrage der GoogleChrome Version und nutze danach den richtigen Webdriver

    $gchrome_version = StringLeft($Fileversion,2)

    $webdriver = "chromedriver_" & $gchrome_version & ".exe"

    Else

    MsgBox(0,"Info","Google Chrome in der richtigen Version nicht vorhanden.")

    Exit

    EndIf

    $mail = "username"

    $pass = "pass"

    $_WD_DEBUG = $_WD_DEBUG_None ;set to $_WD_DEBUG_None before compiling.

    ;Global $_WD_DRIVER

    Local $sDesiredCapabilities

    Local $iIndex

    $url = "https://app.slidepresenter.com/#/login"

    ;SetupGecko() ;use for Mozilla

    SetupChrome() ;use for Google Chrome

    _WD_Startup()

    $sSession = _WD_CreateSession($sDesiredCapabilities)

    _WD_Navigate($sSession, $url)


    _WD_WaitElement($sSession, $_WD_LOCATOR_ByXPath, "//input[@name='email']")

    ConsoleWrite("+ @error = " & @error & @CRLF)

    $sElement_mail = _WD_FindElement($sSession, $_WD_LOCATOR_ByXPath, "//input[@name='email']")

    _WD_WaitElement($sSession, $_WD_LOCATOR_ByXPath, "//input[@name='password']")

    ConsoleWrite("+ @error = " & @error & @CRLF)

    $sElement_pass = _WD_FindElement($sSession, $_WD_LOCATOR_ByXPath, "//input[@name='password']")

    If @error = $_WD_ERROR_Success Then

    _WD_ElementAction($sSession, $sElement_mail, 'value',$mail)

    EndIf

    If @error = $_WD_ERROR_Success Then

    _WD_ElementAction($sSession, $sElement_pass, 'value',$pass)

    EndIf

    Sleep(1500)

    Send("{ENTER}")


    ;_WD_DeleteSession($sSession)

    _WD_Shutdown()

    Func SetupChrome()

    ;_WD_Option('Driver', 'chromedriver.exe')

    _WD_Option('Driver', 'data\'& $webdriver)

    _WD_Option('Port', 9515)

    ;_WD_Option('DriverParams', '--log-path="' & @ScriptDir & '\chrome.log"')

    _WD_Option('DriverParams')

    $sDesiredCapabilities = '{"capabilities": {"alwaysMatch": {"unhandledPromptBehavior": "ignore", ' & _

    '"goog:chromeOptions": {"w3c": true, "excludeSwitches": ["enable-automation"], "useAutomationExtension": false, ' & _

    '"prefs": {"credentials_enable_service": false},' & _

    '"args": ["start-maximized"] }}}}'

    EndFunc

    Func SetupGecko()

    _WD_Option('Driver', 'geckodriver.exe')

    ;_WD_Option('DriverParams', '--log trace')

    _WD_Option('DriverParams')

    _WD_Option('Port', 4444)

    $sDesiredCapabilities = '{"desiredCapabilities":{"javascriptEnabled":true,"nativeEvents":true,"acceptInsecureCerts":true}}'

    EndFunc

    Gruß gmmg :)