Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Visual Basic 2010 - WebBrowser - Button senza NAME né ID. Rintracciarlo in una pagina web?
Forum - Visual Basic 6 - Visual Basic 2010 - WebBrowser - Button senza NAME né ID. Rintracciarlo in una pagina web?

Avatar
Alain.Serafini (Normal User)
Newbie


Messaggi: 5
Iscritto: 07/08/2012

Segnala al moderatore
Postato alle 10:54
Martedì, 07/08/2012
Buon giorno, sto cercando di ciccare un pulsante all’interno in una pagina Web.
Con Mouseposition e Simulateclick ci riesco ma la soluzione non è assolutamente elegante. Senza contare che le coordinate del mouse variano con la risoluzione dello schermo.
Nel codice HTML della pagina sono presenti gli ID ed i NAME di numerosi elementi (ad esempio <input class="datiInput" type="password" name="j_password" id="j_password" size="20">;). Purtroppo questo non vale per il pulsante di conferma “OK”. Nel codice HTML è presente questo testo: <input class="datiInput" type="submit" value="OK">. Lo stesso vale per il pulsante “ANNULLA” (<input class="datiInput" type="reset" value="Annulla">;).
Ho provato con il codice di seguito riportato ma, mentre lo stesso funziona sugli altri elementi, non c’è identificazione dei pulsanti in questione.
Codice sorgente - presumibilmente Visual Basic 6

  1. Dim OGG As HtmlElement = webvis.Document.GetElementFromPoint(MousePosition - Me.Location - webvis.Location)
  2. MsgBox(OGG.Name.ToString & " - " & OGG.Id)


Anche il riferimento a http://totemslair.org/guide/viewchapter.php?guida=vb&id=80 non mi è stato di grande aiuto al fine di “prendere il controllo” dei pulsanti.
Ringrazio anticipatamente ciascuno per l’aiuto che vorrà offrire. Buona giornata. Alain.

PM Quote
Avatar
Qwertj (Dev Team)
Guru


Messaggi: 678
Iscritto: 30/05/2011

Segnala al moderatore
Postato alle 11:47
Martedì, 07/08/2012
prova prendendo tutti gli elementi con quel tagname, nella guida di totem c'è scritto da qualche parte il nome della funzione che adesso non mi ricordo

PM Quote
Avatar
Alain.Serafini (Normal User)
Newbie


Messaggi: 5
Iscritto: 07/08/2012

Segnala al moderatore
Postato alle 12:07
Martedì, 07/08/2012
La funzione dovrebbe essere GetElementsByTagName (tagname As String).

Ti prego di portare un po' di pazienza ... di quale tagname stai parlando?

Se può esserti utile e se, a tuo avviso, il regolamento del forum lo consente,

posso rendere noto l'URL del sito.

Grazie!

PM Quote
Avatar
Alain.Serafini (Normal User)
Newbie


Messaggi: 5
Iscritto: 07/08/2012

Segnala al moderatore
Postato alle 12:38
Martedì, 07/08/2012
Ho ottenuto, via codice, un elenco completo dei Tagname della pagina Web:

Elenco dei Tagname:  - ! - HTML - HEAD - TITLE - META - META - META - META - META - META - ! - LINK - ! - SCRIPT - BODY - DIV - DIV - DIV - DIV - A - IMG - DIV - DIV - DIV - DIV - DIV - A - ! - BR - BR - BR - FIELDSET - LEGEND - BR - FORM - DIV - LABEL - DIV - INPUT - BR - BR - DIV - LABEL - DIV - INPUT - BR - BR - DIV - BR - LABEL - B - INPUT - LABEL - B - INPUT - BR - BR - DIV - INPUT - INPUT - DIV - A - BR - BR - BR - BR - BR - DIV - BR - TABLE - TBODY - TR - TD - FIELDSET - LEGEND - BR - BR - BR - BR - BR - BR - BR - BR - TD - TD - FIELDSET - LEGEND - BR - BR - BR - IMG - BR - BR - BR - TR - TD - TR - TD - A - A - BR - BR - DIV - DIV - DIV - IMG

Perdonami, ma non ho capito come questo dato mi permetterà

di selezionare il pulsante desiderato. Alain.

PM Quote
Avatar
Alain.Serafini (Normal User)
Newbie


Messaggi: 5
Iscritto: 07/08/2012

Segnala al moderatore
Postato alle 12:58
Martedì, 07/08/2012
Con
Codice sorgente - presumibilmente Visual Basic 6

  1. Dim COLLA As HtmlElementCollection
  2.         COLLA = webvis.Document.GetElementsByTagName("INPUT")



ho ottenuto, via codice, il seguente risultato:

j_username - j_password - vmatrice_1 - vmatrice_2

che sono NAME ed ID (coincidono) di quattro textbox nelle quali è

necessario inserire i dati di login. Dei pulsanti ... nessuna notizia.

PM Quote
Avatar
Qwertj (Dev Team)
Guru


Messaggi: 678
Iscritto: 30/05/2011

Segnala al moderatore
Postato alle 22:27
Martedì, 07/08/2012
prova a invocare il submit della form

PM Quote
Avatar
Alain.Serafini (Normal User)
Newbie


Messaggi: 5
Iscritto: 07/08/2012

Segnala al moderatore
Postato alle 8:57
Mercoledì, 08/08/2012
Funziona! Con il codice:

Codice sorgente - presumibilmente Plain Text

  1. webvis.Document.GetElementById("query").InvokeMember("submit")



che hai suggerito, ho modo di bypassare la sequenza di istruzioni:

Codice sorgente - presumibilmente VB.NET

  1. Dim Posizione As Point
  2.             Posizione.X = 566 : Posizione.Y = 515
  3.             Cursor.Position = Posizione
  4.             Dim PUNTO As New Drawing.Point(Posizione.X, Posizione.Y)
  5.             SimulateClick(PUNTO)



Grazie davvero! Ho modo di incrementare il tuo numero di "Pollice su"?

PM Quote
Avatar
Qwertj (Dev Team)
Guru


Messaggi: 678
Iscritto: 30/05/2011

Segnala al moderatore
Postato alle 10:56
Mercoledì, 08/08/2012
prego :k:
e no, in un thread non puoi darmi dei pollicioni :rotfl:

PM Quote