Bonjour,
je suis sur VB et je cherche un code simple qui me permette d’attendre la fin du chargement de la page d’un webbrowser pour ensuite effectuer la suite du programme. J’aimerais en effet lancer une page web fixe, attendre la fin de chargement de la page, PUIS remplir des cases de saisie à l’aide de la commance sendkeys etc mais le probleme est cette fameuse attente qui ne marche pas :
Sans attente les commandes sendkeys se font dans le vide
j’ai essayé sleep mais pdt ce temps la page ne se charge pas
j’ai essayé l’evenement “documentcompleted” mais il n’a pas marché
Voila, merci de m’aider
webbrowser1.document.getelementbyid(“id_désirée”).setattribute(“value”, textbox1.text) ’ Attribue la valeur “1” qu’il y à dans mon textbox1
webbrowser1.document.getelementbyid(“id_désirée”).setattribute(“value”, textbox2.text) ’ Attribue la valeur “2” qu’il y à dans mon textbox2
Et bien, cela charche et me met ensuite les commandes
Merci mais la ligne WEBBROWSER1_DOCUMENTCOMPLETED ne marche pas alors il faut que je fasse comme la msdn.microsoft.com… ?
Et aussi, je suis novice là dedans mais à quoi sert webbrowser1.document.getelementbyid(“id_désirée”).setattribute(“value”, textbox1.text) et que represente “id désiré” ?
Cela veut dire en francais, on obtient un élément par sont ID html par exemple, l’ID que je cherche est id_desirée et je lui attribue une valeur qui est textbox1.text
alors voila je fais ca : Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
WebBrowser1.Navigate(“www.google.fr”)
WEBBROWSER1_DOCUMENTCOMPLETED()
’ MON CODE
End Sub
mais voila cette ligne WEBBROWSER1_DOCUMENTCOMPLETED() ne marche pas car “WEBBROWSER1_DOCUMENTCOMPLETED n’est pas déclaré”
Peut etre que parce que je ne suis pas sur VB.NET ce code ne marche pas chez moi.
Le problème revient donc à son point de départ puisque ce que j’ai trouvé avant de venir poster ici est soit la commande sleep soit WEBBROWSER1_DOCUMENTCOMPLETED ^^
Merci quand même et si tu finis par trouver n’hésite pas à me le dire, je continue à suivre ce sujet
non, je n’ai pas d’exemple tout prêt sous la main.
Et sur ce sujet précis je n’en aurais pas qui datent de moins de 15 ans donc je préfère éviter, les basic ont évolué depuis …
L’idée, c’est de faire un “sleep” relativement court puisqu’il est bloquant, et de le faire boucler sur lui-même jusqu’à ce que tu atteignes le délai qui t’intéresse. Mais dans ta boucle, tu inclus aussi un “doevents” pour que le reste du programme reprenne la main à chaque passage.
en gros :
while timer < t
sleep(50) (ou sleep 50 ?)
doevents
wend
Là tu donnes ce que tu as écrit, mais tu ne réponds pas à la question.
Ca provoque quoi comme type d’erreur ?
Mais en lisant ton bout de code, je pense savoir d’où ça vient : tu utilises quoi comme VB ?
Parceque doevents n’existe pas en en tant que tel vb.net.
Un petit tour sur Google te donnera les différentes solutions pour récupérer la fonctionnalité.
j’utilise visual studio 2010
alors pour les codes d’erreur :
timer est un type et ne peut pas etre utilisé en tant qu’expression
t n’est pas déclaré
doevents n’est pas déclaré
j’ai trouvé ca :
'Declaration
Public Shared Sub DoEvents
'Usage
Application.DoEvents
end sub
Je n’ai jamais eu l’occasion d’utiliser le VB de Visual studio donc je ne peux pas t’aider beaucoup
Mais il semble que les conseils donnés pour ta situation sont d’utiliser un thread séparé