Programme qui agit sur une page web (clic et remplissage de formulaires)

Signaler
Messages postés
64
Date d'inscription
jeudi 23 février 2012
Statut
Membre
Dernière intervention
28 février 2014
-
Messages postés
64
Date d'inscription
jeudi 23 février 2012
Statut
Membre
Dernière intervention
28 février 2014
-
Bonjour a tous,

Pour me familiariser avec la manipulation des pages web, je voudrais créer un petit programme via lequel on va remplir la zone texte de Google (là ou on met les mots clé pour rechercher un site) et activer le bouton "Recherche Google".

Donc dans l'interface du programme on aura un webbrowser qui va afficher le page de Google, un bouton qui va mettre une chaîne de caractères donnée dans la zone texte, sans nous ayons à le taper nous même et un autre qui va simuler le clic sur "Recherche Google".

Le problème est que je ne sais pas comment récupérer la zone de texte et le bouton recherche pour les manipuler.

J'ai bien trouvé cette page où on nous dit :

Bon jour,
il faut utiliser la notion des objets DOM pour y accéder à une page html, pour cela dand le webbrowserDocumentComplete doit contenir le cose suivant (C#):

HtmlDocument document = webBrowser.Document;
if (document != null)
{
document.All["p0"].SetAttribute("value", userName);
document.All["p1"].SetAttribute("value", passWord);
document.Forms["saisie"].InvokeMember("submit");
}

où P0 est le champ nom d'utilisateur
P1 le mot de passe
et dans la forme -saisie- le boutton sutmit
Bonne chance.


et ça :

sinon j'ai trouvé une autre méthode :

webBrowser.Document.All["username"].SetAttribute("value","monNomUtilisateur");
webBrowser.Document.All["password"].SetAttribute("value","monMotDePasse");
webBrowser.Document.GetElementById("login").Focus();
webBrowser.Document.GetElementById("login").InvokeMember("click");


Le gros problème c'est que :

1) "document.All["p0"]" est impossible puisque All[] ne prend que des int
2) "webBrowser.Document.GetElementById("login").Focus();" si j'ai bien compris, attrape les éléments via leur id, hors pour le bouton "recherche google", firebug le voit comme ça :



Bref il y a bien un "name" mais pas d' "Id".


Pouvez vous me donner des pistes s'il vous plait ?

3 réponses

Messages postés
64
Date d'inscription
jeudi 23 février 2012
Statut
Membre
Dernière intervention
28 février 2014

Personne ne veut m'aider ? je peux toujours répondre aux questions si vous ne comprenez pas ce que je dis.
Messages postés
441
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
22 mai 2012
7
Salut,

Contrairement à ce que tu dis :

1) document.All[] ne prend pas QUE des Int32...
Il existe une surcharge avec les String !!

2) le bouton "Recherche" de google est à la ligne suivante :

Il a donc bien un ID !

Je vais essayer de le faire par cette méthode... j'te tiens au jus ;)
Messages postés
64
Date d'inscription
jeudi 23 février 2012
Statut
Membre
Dernière intervention
28 février 2014

Merci beaucoup, je t'attends