aide WebBrowser

    Publicités

Users Who Are Viewing This Thread (Total: 0, Members: 0, Guests: 0)

Status
Not open for further replies.

jimmydemon

Membre
Feb 21, 2014
24
0
121
vosges
bonjour à vous

Voila je suis sur un projet avec un WebBrowser

j'utilise

1 WebBrowser
2 texte box
1 bouton 1er validation
2 eme bouton confirmation action


je dois remplir deux texte box puis je dois validé avec le bouton validé ça j'y arrive,

le problème c'est que jai un compte a rebours qui bien sur n'apparait pas dans le WebBrowser mais je contourne ce problème en utilise un timer,

apres la validation du 1 er bouton je dois attendre 1 minute et je dois confirmer mon action avec le 2eme bouton
mais ce ci est du java voici le code pour ce bouton

<a href="index.php?page=mon nom " *="" onclick="javascript:teads.show();return false;" id="button_compteur">Je confirme mon message </a>

j'ai voulus utilisé le même principe que le 1er bouton mais jai une erreur

WebBrowser1.Document.Forms(0).InvokeMember("submit")
en remplacent "submit" pas "button_compteur" ou y metre -1 au lieu de 0 pour form

mais j'ai une erreur

je vous donne mon code

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Timer1.Enabled = True
Timer1.Start()
Timer1.Interval = 100 ' = 1min
TextBox1.Enabled = False
TextBox2.Enabled = False
Button1.Enabled = False

'Attendre que la page soit complète
WebBrowser1.Document.GetElementById("mon nom").SetAttribute("value", TextBox1.Text)
WebBrowser1.Document.GetElementById("message").SetAttribute("value", TextBox2.Text)
WebBrowser1.Document.Forms(0).InvokeMember("submit")
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If WebBrowser1.ReadyState = WebBrowserReadyState.Complete Then

End If

Dim element As HtmlElementCollection = WebBrowser1.Document.All

For Each webpageelement As HtmlElement In element
'id button_compteur
If webpageelement.GetAttribute("button_compteur") = "onclick" Then

End If
webpageelement.InvokeMember("click")
Next
End Sub

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick

ProgressBar1.Value = ProgressBar1.Value + 1
If ProgressBar1.Value = ProgressBar1.Maximum Then
ProgressBar1.Value = 0
Timer1.Stop()
Timer1.Enabled = False
Button1.Enabled = True
End If

End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

Button1.Enabled = False
End Sub
End Class
 

Evaelis

La Voix de la Sagesse
V
Ancien staff
Apr 28, 2010
22,949
468
1,699
Valhalla
submit : Envoyer le formulaire, défini précédemment par GetElementById("message") ou WebBrowser1.Document.Forms(0) (Premier formulaire / Form index 0).
Tu le changes en quelque chose d'inexistant ...
 

jimmydemon

Membre
Feb 21, 2014
24
0
121
vosges
merci à toi de l’intérêt que tu port a mon problème mais je comprend pas ce que tu veux par ton message je tien à précisé que ce qui est nommé "mon nom" ou "message" et volontairement faut mais comme expliquer plus haut mon problème n'est pas de remplir mes texte box et la 1er validation pour la seconds qui dois ce faire au bout d'une minutes la arrive un javascript en temps que bouton de validation
comme ceci
<a href="index.php?page=mon nom " *="" onclick="javascript:teads.show();return false;" id="button_compteur">Je confirme mon message </a>
 

Evaelis

La Voix de la Sagesse
V
Ancien staff
Apr 28, 2010
22,949
468
1,699
Valhalla
Soit tu exécutes ton javascript directement, soit tu invoke un click.
WebBrowser1.Document.GetElementById("button_compteur").InvokeMember("click")
A savoir qu'il te faudra le temporiser 1 minute
 

jimmydemon

Membre
Feb 21, 2014
24
0
121
vosges
merci mais malheureusement j'ai déjà teste ceci mais cela ne fonctionne pas
jai une erreur de ce type

Une exception non gérée du type 'System.NullReferenceException' s'est produite dans application3.exe

Informations supplémentaires*: La référence d'objet n'est pas définie à une instance d'un objet.
 

Evaelis

La Voix de la Sagesse
V
Ancien staff
Apr 28, 2010
22,949
468
1,699
Valhalla
Tu devrais dans ce cas donner la source complète, ou du moins utiliser des points d'arrêt pour voir d'où vient l’erreur
 

jimmydemon

Membre
Feb 21, 2014
24
0
121
vosges
POUR LE BOUTON 3

WebBrowser1.Document.GetElementById("mobile").SetAttribute("value", TextBox1.Text)
WebBrowser1.Document.GetElementById("texte").SetAttribute("value", TextBox2.Text)
WebBrowser1.Document.Forms(0).InvokeMember("submit")

CECI FONTIONNE PARFAITEMENT

POUR LE BOUTON 1 LA CA MARCHE PAS ERREUR
Informations supplémentaires*: La valeur '0' n'est pas valide pour 'index'. 'index' doit être compris entre 0 et -1

WebBrowser1.Document.Forms(0).InvokeMember("button_compteur")
 

Evaelis

La Voix de la Sagesse
V
Ancien staff
Apr 28, 2010
22,949
468
1,699
Valhalla
Normale d'après ce que tu as envoyé, tu n'as pas de formulaire mais uniquement un (faux) lien avec du JS. Utilise un invokeMember("Click") sur ce lien.
 

jimmydemon

Membre
Feb 21, 2014
24
0
121
vosges
si si jai un lien dans les propriété du webrosers je remplis 2 texte box mobile et texte que je confirme avec le bouton 3 ca ca fonctionne c'est bien remplis et envoyer mais apres 1 minute de dois confirmer et c'est un bouton java de ce type

<a href="index.php?page=mon nom " *="" onclick="javascript:teads.show();return false;" id="button_compteur">Je confirme mon message </a>

MALGRES CE CI
WebBrowser1.Document.Forms(0).InvokeMember("button_compteur")

ERREUR
Une exception non gérée du type 'System.ArgumentOutOfRangeException' s'est produite dans System.Windows.Forms.dll

Informations supplémentaires*: La valeur '0' n'est pas valide pour 'index'. 'index' doit être compris entre 0 et -1.

---------- Message ajouté à 04h26 ---------- Le message précédent était à 01h55 ----------

apres des heures de recherche jai changer mon webrowser par geckowebrowser j'arrive à tout voir sur ma page mais pour la ligne


jai trouve ceci

POUR LA LIGNE LA CA MARCHE

GeckoWebBrowser1.Document.GetElementById("mobile").SetAttribute("value", TextBox1.Text)
CELLE CI NE MARCHE PAS pourtant c'est le bon ID

GeckoWebBrowser1.Document.GetElementById("texte").SetAttribute("value", TextBox2.Text)


et jai l'erreur
the url is not valid and cannot be loaded


CELLE CI JE NE PENSE PAS QUEL MARCHE PUISQUE IL Y A PAS DE TEXTE

GeckoWebBrowser1.Navigate("submit( document.getElementById( 'idbutton_send' ).click() ) ")
 
Last edited:
May 23, 2013
508
0
322
'merica
Code:
if(webbroser.ReadyState == WebBrowserReadyState.Complete)
    webbrower.Document.GetElementById("button_compteur").InvokeMember("click");
 

jimmydemon

Membre
Feb 21, 2014
24
0
121
vosges
merci mais cela ne fonctionne pas

erreurs
'ReadyState' n'est pas un membre de 'Skybound.Gecko.GeckoWebBrowser

'InvokeMember' n'est pas un membre de 'Skybound.Gecko.GeckoElement'
 

Nayres

Membre Banni
Apr 15, 2012
3,431
0
341
Quelque part.
Apr 26, 2011
1,315
2
944
26
In my home
Discord
brokeos

jimmydemon

Membre
Feb 21, 2014
24
0
121
vosges
JE SUIS DÉSESPÉRÉ

AVEC UN WEBROWSER LES 2 TEXTES BOX FONCTIONNE

WebBrowser1.Document.GetElementById("mon nom").SetAttribute("value", TextBox1.Text)
WebBrowser1.Document.GetElementById("message").Set Attribute("value", TextBox2.Text)

MAIS

AVEC UN GeckoWebBrowser 1SEUL TEXTEBOX FONCTIONNE POURQUOI?

Dim doc = GeckoWebBrowser1.Document

doc.GetElementById("mobile").SetAttribute("value", CStr(TextBox1.Text))
doc.GetElementById("texte").SetAttribute("value", CStr(TextBox2.Text))

---------- Message ajouté à 22h31 ---------- Le message précédent était à 01h20 ----------

personne ne peux m'aidez ?
 
Last edited:

Evaelis

La Voix de la Sagesse
V
Ancien staff
Apr 28, 2010
22,949
468
1,699
Valhalla
Peut être que sur le Gecko il retourne un tableau même pour un GetElementById (Supposé unique)
Vérifie ça.
 

Evaelis

La Voix de la Sagesse
V
Ancien staff
Apr 28, 2010
22,949
468
1,699
Valhalla
Avant d'essayer des choses, tu devrais de renseigner sur l'utilisation du protocole HTTP, ainsi que sur la structure des pages.
 
Status
Not open for further replies.