Naviguer dans une page WEB avec les elements interpretées

Résolu
Genildf Messages postés 270 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 30 décembre 2015 - 7 janv. 2010 à 11:19
Genildf Messages postés 270 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 30 décembre 2015 - 15 janv. 2010 à 15:37
Bonjour

J'ai un souci pour creer une appli qui est cencé remplir des champ d'une page web et clicker sur les bouton pour me faire gagner du temp

Cependant le site a change légèrement je redeveloppe donc pour que mon programme refonctionne mais je rencontre une difficulté:

Je doit clicker sur des élément qui ne figure pas dans le code source de la page; c'est a dire qui sont générée d'une autre facon (JAVAscript).
Et je ne trouve pas la solution

45 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 janv. 2010 à 11:18
je ne pense pas que cela joues un rôle quelconque. piloter la chose ne ralentit rien, ce sera aussi rapide que de le faire à la main, dans IE6

t'as pas le droit d'updater IE6 mais du as installé FireFox ?
tu joues a ta guise avec les règles ^^

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
Genildf Messages postés 270 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 30 décembre 2015 1
13 janv. 2010 à 11:21
non mais pour faire simple notre itranet est compatible que avec IE6 donc j'ai pas le droit d'y toucher sinon je peut plus travailler

par contre rien ne m'empeche d'installer des freeware comme firefox
0
Genildf Messages postés 270 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 30 décembre 2015 1
13 janv. 2010 à 11:23
    helem = IEexterne.Document.getElementById("domSrvButtonId")
            helem.click()

            Dim oObj As Object
            Dim oDoc As HtmlDocument
            Do
                Application.DoEvents()
            Loop While Nothing Is IEexterne.Document.GetElementById("chkSrvDomId3'")

            oObj = IEexterne.Document.GetElementById("chkSrvDomId3'")
            oObj.Checked = "checked"
            Application.DoEvents()
            oObj.FireEvent("onclick")


Voici mon code c'est pour ainsi dire le même que le tien ,sauf que je doit stresser IE pour que ca réagisse comme le réduire
0
Genildf Messages postés 270 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 30 décembre 2015 1
15 janv. 2010 à 10:01
Je voit pas pourquoi ya un probleme

j'ai ca pour la fenêtre d'exécution :

Une exception de première chance de type 'System.NullReferenceException' s'est produite dans Microsoft.VisualBasic.dll
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
15 janv. 2010 à 10:07
bon, ok, je m'y colle....

je code pas en .Net mais je vais porter mon code, au moins pour voir

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
15 janv. 2010 à 10:27
Pas de souci particulier...

Public Class Form1
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        WebBrowser1.Navigate("https://wwwapps.ups.com/pickup/schedule?loc=fr_FR&WT.svl=PNRO_L1")
    End Sub

    Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        Dim oObj As HtmlElement
        Dim oDoc As HtmlDocument
        If WebBrowser1.ReadyState = 4 Then
            oDoc = WebBrowser1.Document
            oObj = oDoc.GetElementById("addrMDCompanyId")
            oObj.DomElement.Value = "company"
            oObj = oDoc.GetElementById("addrMDPhoneId")
            oObj.DomElement.Value = "0102030405"
            oObj = oDoc.GetElementById("addressId")
            oObj.DomElement.Value = "12 rue Leblanc"
            oObj = oDoc.GetElementById("pd2Id")
            oObj.DomElement.Value = "Paris"
            oObj = oDoc.GetElementById("postalcode")
            oObj.DomElement.Value = "75015"
            Application.DoEvents()
            oObj.DomElement.FireEvent("onblur")

            Do
                Application.DoEvents()
            Loop While Nothing Is oDoc.GetElementById("chkSrvDomId3'")

            oObj = oDoc.GetElementById("chkSrvDomId3'")
            oObj.DomElement.Checked = "checked"
            Application.DoEvents()
            oObj.DomElement.FireEvent("onclick")
        End If
    End Sub
End Class



Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
Genildf Messages postés 270 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 30 décembre 2015 1
15 janv. 2010 à 10:39
Je pense avoir comprit pourquoi ca marche chez toi et pas chez moi

La page doit être différente car moi je suis loggué sur le site a ce moment la je fait des test et je te tien au courant merci de ton soutien en tout cas
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
15 janv. 2010 à 10:43
note bien que j'utilises

oObj.DomElement.Value = "company"

et non simplement :

oObj.Value = "company"

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
Genildf Messages postés 270 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 30 décembre 2015 1
15 janv. 2010 à 10:59
J'ai une invalid cast exception avec ton code

ca plante a
oDoc = WebBrowser1.Document


et du coup le reste du code n'est pas executé
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
15 janv. 2010 à 11:03
strange... (j'ai joué sous vb2005)

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
Genildf Messages postés 270 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 30 décembre 2015 1
15 janv. 2010 à 11:08
moi sous vbexpress

hmm oué c bizare
0
Genildf Messages postés 270 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 30 décembre 2015 1
15 janv. 2010 à 11:18
Je declare mon WEB broswer comme ca

Protected WithEvents WebBrowser1 As SHDocVw.InternetExplorer
WebBrowser1 = New SHDocVw.InternetExplorer()

Et toi qu'utilise tu?
0
Genildf Messages postés 270 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 30 décembre 2015 1
15 janv. 2010 à 11:24
Je croit avoir trouve on le déclaré pas de la meme facon je n'utilisait pas celui de la boite a outils

la ca marche mais je me prend une msgbox avec une erreur de script dans la page web je doit mettre puis pour continuer
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
15 janv. 2010 à 11:32
déclaré ? euh, j'ai posé le controle sur la form...

dans VB6, y'avais la propriété Silent pour sacker ce msg

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
Genildf Messages postés 270 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 30 décembre 2015 1
15 janv. 2010 à 11:44
c ca
moi j'ai declare sans controle ^

avec ta methode c'est ok
0
Genildf Messages postés 270 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 30 décembre 2015 1
15 janv. 2010 à 14:35
Salut j'ai de nouveau un souci (pas tres grave)

Merci pour l'aide tout a l'heure

par contre vu que j'ai change le composant je doit redevloppe une bonne partie du code


" class="webdeveloper-display-form-details"><select id="adk" name="adk"><select class="modSelMedium" name="adk" id="adk" onkeyup="this.blur();this.focus();">


J'arrive a faire un choix sur cette combobox mais pas a lancer la fonction javascript qui suis des que t'a fait ton choix

j'ai essayé
fireevent("onkeyup")


mais ca marche pas
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
15 janv. 2010 à 14:39
manque aussi le onfocus, me semble, non

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
Genildf Messages postés 270 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 30 décembre 2015 1
15 janv. 2010 à 14:49
 helem.DomElement.FireEvent("onfocus")
 helem.DomElement.FireEvent("onblur")
helem.DomElement.FireEvent("onkeyup")


Comme ca?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
15 janv. 2010 à 14:58
javascript nous dit :

si on relache une touche, alors,

déclenche le blur, puis le focus

en gros, ca doit forcer un refresh.

a voir si on doit pas avoir un Application.Doevents après un FireEvent


Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
Genildf Messages postés 270 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 30 décembre 2015 1
15 janv. 2010 à 15:10
Je me retrouve bien avec le focus et tout mais la fonction qui rempli les champ en dessous automatiquement ne se lance pas
0
Rejoignez-nous