Comment selectionner plusieurs items dans une listbox d'un webbrowser [Résolu]

Signaler
Messages postés
21
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
6 janvier 2009
-
Messages postés
21
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
6 janvier 2009
-
Bonjour,

Grâce à un WebBrowser sur un WinForms je récupère une page Web, cette page Web contient une listbox avaec plusieurs items.

Je voudrais en C# agir sur le document ramené par le WebBrowser, à savoir sélectionner plusieurs items de cette ListBox puis activer le bouton submit du formulaire.

Comment je peux faire?

Merci.

2 réponses

Messages postés
475
Date d'inscription
jeudi 19 juin 2003
Statut
Membre
Dernière intervention
3 novembre 2008

Salut,
Je vais te donner une piste et un peu de code.
Le truc est d'utiliser l'objet WebBrowser.Document
Si t'as déjà fait de la programmtion DOM en javacript, tu vas vite comprendre comment ça fonctionne.
Pour les besoins de la cause, imaginons qu'on veut charger la page de google (www.google.com) et qu'on veut forcé la zone de texte à afficher notre texte à recherhcé (disons C# WinForms) et ensuite soumettre (submit) le formulaire. Voici le code :

using

System;
using

System.Windows.Forms;
namespace

WindowsApplication1{

public
partial
class
Form1 :
Form{

bool firstTime =
true;

public Form1(){

InitializeComponent();

}

private
void Form1_Load(
object sender,
EventArgs e){

}

private
void webBrowser1_DocumentCompleted(
object sender,
WebBrowserDocumentCompletedEventArgs e){

//pour ne pas lancer la recherche plusieurs fois en boucle infinie

if (firstTime){

//on cherche l'élément input avec l'attribut "q"

foreach (
HtmlElement element
in webBrowser1.Document.GetElementsByTagName(
"input")){

if (element.GetAttribute(
"name") ==
"q"){

element.SetAttribute(

"value",
"Texte à rechercher sur Google");}

}

//on soumet le formulairewebBrowser1.Document.Forms[0].InvokeMember(

"submit");

//on met firstTime à false pour éviter d'executer ce code une nouvelle fois

//quand l'évènement DocumentCompleted sera déclenché de nouveaufirstTime =

false;}

}

}

}

Bonne chance, j'espère que ça aide.
Pour ton problème, c le même principe mais il faut connaître le modèle DOM et javascript.

[:D] @++
Messages postés
21
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
6 janvier 2009

super!
j'ai compris le principe!
après quelques tests il semblent que c'est la bonne voie!
merci.