Webdriver Button drücken

  • Ich habe den Eindruck, dass Sie auf die falschen Elemente abzielen. Wenn Sie die Webseite mit den Entwicklertools des Browsers untersuchen, gibt es Mouseover- und Klick-Ereignisse, die mit den Div-Elementen verbunden sind, also sind das diejenigen, die Sie anklicken wollen, nicht die Svg-Elemente.


    Das funktioniert bei mir.

    Code
    $xPath = "//div[@id='route_planner_menu_item']"
    Local $sButton = _WD_WaitElement($sSession, $_WD_LOCATOR_ByXPath, $xPath)
    
    If @error = $_WD_ERROR_Success Then
        Sleep(4000)
        _WD_ElementAction($sSession, $sButton, 'click')
    Endif

    Beachten Sie, dass Sleep() notwendig ist, um das anfängliche Laden der Seite zu beenden, aber es sollte für nachfolgende Aktionen nicht erforderlich sein.

  • Hallo Danp2,

    du bist der größte.

    Vielen lieben Dank für deine Hilfe.


    Eine Frage habe ich noch?

    Kann man die Webseiten auch öffnen, mit den speicherten add-ons und Passwörter, oder wird immer eine leere Instanz geöffnet.

    Hab darüber nichts gefunden.

  • [OT]

    Oscar oder BugFix :

    Wäre es möglich, dass jemand diesen Thread aus 'Talk' nach 'Hilfe & Unterstützung' verschiebt.

    Die Infos von Danp2 sind doch sehr hilfreich und dort sicher besser aufgehoben, falls jemand anderes mal sucht.

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Ein frohes und gesundes neues Jahr liebe Experten,

    ich habe noch ein Problem mit dem Webdriver Profil.

    Komme einfach nicht weiter mit dem Benutzerprofil einlesen.

    Vielleicht kann sich das mal jemand ansehen.

    Habe mal eine einfache, übersichtliche Testdatei gemacht.






    Code
    1641116239888   geckodriver     INFO    geckodriver 0.21.0
    1641116239888   webdriver::httpapi      DEBUG   Creating routes
    1641116239894   geckodriver     INFO    Listening on 127.0.0.1:4444
    1641116240342   webdriver::server       DEBUG   -> POST /session {'capabilities':{'alwaysMatch': {'moz:firefoxOptions': {'binary':", 'args': ['-profile', ' C:\Users\xx2\AppData\Roaming\Mozilla\Firefox\Profiles\bpnaut9q.default-1611819310091'],'log': {'level': 'trace'}}}}}
    1641116240342   webdriver::server       DEBUG   <- 400 Bad Request {"value":{"error":"invalid argument","message":"Failed to decode request as JSON: \"{'capabilities':{'alwaysMatch': {'moz:firefoxOptions': {'binary':\", 'args': ['-profile', ' C:\\Users\\xx2\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\bpnaut9q.default-1611819310091'],'log': {'level': 'trace'}}}}}\"","stacktrace":"Syntax error at :1:2"}}
    1641116240357   webdriver::server       DEBUG   -> POST /session//url {"url":"https://google.de"}
    1641116240357   webdriver::server       DEBUG   <- 404 Not Found {"value":{"error":"unknown command","message":"POST /session//url did not match a known command","stacktrace":""}}




    Vielen Dank!


    Liebe Grüße

    Windi

  • Frohes neues Jahr!


    Ich bin bei diesem Thema kein Experte, aber:


    Die Fehlermeldung ist ja eindeutig. Dein Übergabeparameter ist kein korrektes JSON-Format.


    Danp2 hat oben auf ein Codebeispiel (3. How to utilize an existing user profile) verwiesen:

    Man sollte meinen, dass das funktioniert. Warum nutzt Du das nicht oder orientierst Dich zumindest am Format des zurückgegebenen Pfads? Und warum vertauschst Du ausgerechnet bei der Zuweisung des Profiles die Stringbegrenzer?

    Code
    $sDesiredCapabilities = "{'capabilities':{'alwaysMatch': {'moz:firefoxOptions': {'binary':"", 'args': ['-profile', ' C:\Users\xx2\AppData\Roaming\Mozilla\Firefox\Profile

    Für JSON ist das 'doppelte' Anführungszeichen " als Stringbegrenzer definiert.

  • Hallo Velted,

    danke für den Tip.

    Dir auch ein frohes und gesundes Neues.

    Den Code im Artikel von Danp2 hatte ich auch ausprobiert.


    Code
    $sDesiredCapabilities = '{"capabilities":{"alwaysMatch": {"moz:firefoxOptions": {"args": ["-profile", "' & GetDefaultFFProfile() & '"],"log": {"level": "trace"}}}}}'

    hier bekomme ich diese Fehlermeldung!


    Code
    $sDesiredCapabilities = '{"capabilities":{"alwaysMatch": {"moz:firefoxOptions": {"args": ["-profile", "' & GetDefaultFFProfile() & '"],"log": {"level": "trace"}}}}}'
    $sDesiredCapabilities = '{"capabilities":{"alwaysMatch": {"moz:firefoxOptions": {"args": ["-profile", "' & ^ ERROR

    Er mag also den Befehl "GetDefaultFFProfile()" nicht.

    Mit JSON kenne ich mich überhaubt nicht aus.

  • Komisch, bei mir läuft das folgende Miniskript das klaglos.

  • ich bin so bescheuert!!!!!!!! ||

    Hab jetzt erst geschnallt das es ein Funktion ist.

    Manchmal sieht man den Wald vor lauter Bäumen nicht.

    Ich dachte es ist ein Bestandteil vom Webdriver.


    Läuft perfekt.... :party:


    Super, Super,

    vielen Dank

    Windi