Webview2 non riesco ad inviare il click (risolto)

di il
8 risposte

Webview2 non riesco ad inviare il click (risolto)

Una grossa cortesia chiedo agli esperti:

sono riuscito tramite 

Await WebView21.ExecuteScriptAsync("document.getElementsByName('username')[0].value = …etc.etc.

a caricare i campi username e password, ma

in una situazione del genere come faccio a far scaturire l'evento click di quel button2 che non ha ne un id ne un name?

Grazie in anticipo.

8 Risposte

  • Re: Webview2 non riesco ad inviare il click (risolto)

    Prima fai  un javascript per gestire l'evento se la classe “button2” ce l'ha solo lui puoi “trovarlo” usando 

    https://www.w3schools.com/jsref/met_document_queryselector.asp usando il nome della classe

    poi aggiungi il gestore dell'evento click

    https://www.w3schools.com/jsref/met_document_addeventlistener.asp

    metti il tuo codice in un file .js e poi aggiungi il file alla pagina prima della fine del body con il tag <script> 

    prova se funziona e magari fai sapere se trovi un altro modo di passare il codice javascript  :-)

  • Re: Webview2 non riesco ad inviare il click (risolto)

    Da quel che ho capito quel button fa parte di un <form> e serve per fare il submit, per cui facci vedere la definizione del <form>, probabilmente puoi fare un bel form.submit();

  • Re: Webview2 non riesco ad inviare il click (risolto)

    15/03/2024 - SirJo ha scritto:


    Da quel che ho capito quel button fa parte di un <form> e serve per fare il submit, per cui facci vedere la definizione del <form>, probabilmente puoi fare un bel form.submit();

    si vero, fa parte di un form :

    Il mio problema è che non vedo ne id ne name, come dovrebbe essere la sintassi ExecuteScriptAsync per la funzione submit?

    Grazie.

  • Re: Webview2 non riesco ad inviare il click (risolto)

    15/03/2024 - gian82 ha scritto:


    Prima fai  un javascript per gestire l'evento se la classe “button2” ce l'ha solo lui puoi “trovarlo” usando 

    https://www.w3schools.com/jsref/met_document_queryselector.asp usando il nome della classe

    poi aggiungi il gestore dell'evento click

    https://www.w3schools.com/jsref/met_document_addeventlistener.asp

    metti il tuo codice in un file .js e poi aggiungi il file alla pagina prima della fine del body con il tag <script> 

    prova se funziona e magari fai sapere se trovi un altro modo di passare il codice javascript  :-)

    Grazie ma sto programmando in VBNet

  • Re: Webview2 non riesco ad inviare il click (risolto)

    Risolto!!!

    Await WebView21.ExecuteScriptAsync("document.forms[0].submit();")

    Grazie a tutti.

  • Re: Webview2 non riesco ad inviare il click (risolto)

    Ottimo !!!

    Ovviamente il codice che hai scritto funziona solamente se il <form> di cui vuoi fare il submit è il primo <form> della pagina, e probabilmente ti va bene, ma se un domani dovessi trovare una pagina HTML con più <form> ovviamente devi selezionare quello corretto.
    Nel tuo caso (come avevi già scritto tu) non hai <id> e nemmeno <name> associate al <form>, per cui diventa un po' un problema identificarlo.

    Come vedi nel codice del <form>, ha una <action> associata, e se ci fossero più form sarà praticamente impossibile che abbiano la stessa <action>, per cui puoi identificarlo su quella proprietà

    Fai una prova con

    Await WebView21.ExecuteScriptAsync("document.querySelector('form[action=""index.php?cmd=login""]');")
  • Re: Webview2 non riesco ad inviare il click (risolto)

    17/03/2024 - SirJo ha scritto:


    Ottimo !!!

    Ovviamente il codice che hai scritto funziona solamente se il <form> di cui vuoi fare il submit è il primo <form> della pagina, e probabilmente ti va bene, ma se un domani dovessi trovare una pagina HTML con più <form> ovviamente devi selezionare quello corretto.
    Nel tuo caso (come avevi già scritto tu) non hai <id> e nemmeno <name> associate al <form>, per cui diventa un po' un problema identificarlo.

    Come vedi nel codice del <form>, ha una <action> associata, e se ci fossero più form sarà praticamente impossibile che abbiano la stessa <action>, per cui puoi identificarlo su quella proprietà

    Fai una prova con

    Await WebView21.ExecuteScriptAsync("document.querySelector('form[action=""index.php?cmd=login""]');")

    si hai ragione e l'avevo intuito, molto interessante la queryselector che mi hai indicato per ricercare componenti senza riferimenti espliciti

    grazie ancora.

  • Re: Webview2 non riesco ad inviare il click (risolto)

    Ops, una mia svista, ovviamente il comando corretto è

    Await WebView21.ExecuteScriptAsync("document.querySelector('form[action=""index.php?cmd=login""]').submit();")
Devi accedere o registrarti per scrivere nel forum
8 risposte