Cherche à atteindre un lien avec webbrowser URGENT SVP !

Résolu
attaquevertical Messages postés 39 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 9 juillet 2009 - 28 avril 2009 à 09:18
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 28 avril 2009 à 22:36
bonjour,

Voilà j'ai un lien qui est dans une balise comme ci-dessous mais je ne sais pas comment automatiser le clique dessus avec webbrowser:

<span class="Text Pink" onclick="fbjs_sandbox.instances.a25148877350.bootstrap();return fbjs_dom.eventHandler.call([fbjs_dom.get_instance(this,25148877350),function(a25148877350_event) {a25148877350_selectall_f();},25148877350],new fbjs_event(event));" style="cursor: pointer;">Tous</span>

cela fait déjà quelques jours que je bloque la dessus svp aider moi
merci d'avance

11 réponses

attaquevertical Messages postés 39 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 9 juillet 2009
28 avril 2009 à 20:53
ouai mais j'en ai deux. Bon voila le code final et fonctionnel pour moi :
 
 Dim Elems As HtmlElementCollection
                Dim WebOC As WebBrowser = nom.WebBrowser1

                Elems = WebOC.Document.GetElementsByTagName("span")

                For Each elem As HtmlElement In Elems
                    Dim NameStr As String
                    NameStr = elem.InnerText

                    On Error Resume Next ' autorise la ligne suivant l'erreur à etre exécutée
                    If ((NameStr IsNot Nothing) And (NameStr.Length <> 0)) Then
                        Err.Clear()
                        On Error GoTo 0   ' désactive la récupération d'erreur (annule le "On Error Resume Next"

                        On Error Resume Next ' autorise la ligne suivant l'erreur à etre exécutée
                        If NameStr = "Tous" Then
                            Err.Clear()
                            On Error GoTo 0   ' désactive la récupération d'erreur (annule le "On Error Resume Next"
                            elem.InvokeMember("click")

                        End If
                        Err.Clear()
                        On Error GoTo 0   ' désactive la récupération d'erreur (annule le "On Error Resume Next"
                        'MaskedTextBox1.Text = NameStr
                        ' Dim ContentStr As String = elem.GetAttribute("content")
                        ' MessageBox.Show("Document: " & ContentStr)
                        '  End If
                    End If
                    Err.Clear()
                    On Error GoTo 0   ' désactive la récupération d'erreur (annule le "On Error Resume Next"
                Next
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 avril 2009 à 10:12
itères sur la collection obtenue via :
getElementsByTagName("span")

une fois le bon élément trouvé, tu pourras faire :

monObjectSPAN.Click

ou

monObjectSPAN.FireEvent("onclick")
0
attaquevertical Messages postés 39 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 9 juillet 2009
28 avril 2009 à 10:19
le problème est que j'ai plusieurs span sur ma page alors comment être sur de prendre le bon ???

Exemple je veux cliquer sur le premier :

<span class="Text Pink" onclick="fbjs_sandbox.instances.a25148877350.bootstrap();return fbjs_dom.eventHandler.call([fbjs_dom.get_instance(this,25148877350),function(a25148877350_event) {a25148877350_selectall_f();},25148877350],new fbjs_event(event));" style="cursor: pointer;">Tous</span>
<span class="Text Pink" onclick="fbjs_sandbox.instances.a25148877350.bootstrap();return fbjs_dom.eventHandler.call([fbjs_dom.get_instance(this,25148877350),function(a25148877350_event) {a25148877350_deselectall_f();},25148877350],new fbjs_event(event));" style="cursor: pointer;">Aucun</span>
0
attaquevertical Messages postés 39 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 9 juillet 2009
28 avril 2009 à 10:20
pardon j'aurais du mieux expliquer dés je début mais je n'ai pas vu tout de suite les autres boutons dans la code
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 avril 2009 à 10:25
pour ça que je parle bien d'itérer sur une collection d'objets, a la recherche du bon.... (celui dont le texte est 'Tous', par exemple)
0
attaquevertical Messages postés 39 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 9 juillet 2009
28 avril 2009 à 10:39
alors je devrais écrire comme ci-dessous pour trouver le bon directement:

getElementsByTagName("Tous")

ou d'abord rechercher toute la collection span et après tester :

getElementsByTagName("span")

if monObjectSPAN.text.equals("Tous") then

...
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 avril 2009 à 10:42
getElementsByTagName("Tous")
ben non... le nom de la balise est bien span

la seconde logique est a appliquer....
0
attaquevertical Messages postés 39 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 9 juillet 2009
28 avril 2009 à 10:44
ok je vais tester tout ca se soir et je te tiens au courant merci
0
attaquevertical Messages postés 39 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 9 juillet 2009
28 avril 2009 à 19:12
voilà mon code

      Dim oElm As Object
        For Each oElm In Me.WebBrowser1.Document.GetElementById("span")
   
            If oElm.text = "Tous" Then
                 oElm.Click()
            End If
        Next oElm

il me sort cette erreur :

MissingMemberException

Le membre public 'text' du type 'HtmlElement' est introuvable.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 avril 2009 à 20:43
oui, la propriété text n'existe pas

j'ai validé la logique, la doc t'aurai dit que c'est la propriété innerText qu'il faut consulter.

autre chose, une fois ton bouton trouvé et cliqué, tu peux quitter la boucle
=> Exit For
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 avril 2009 à 22:36
tu hésites pas avec la recuperation d'erreur !

no panic !

une fois le innerText récupéré, c'est un bête String, pas de gants particulierrs a prendre, donc.
0
Rejoignez-nous