Comment selectionner plusieurs items dans une listbox d'un webbrowser

Résolu
sorcer1 Messages postés 21 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 6 janvier 2009 - 28 oct. 2006 à 14:00
sorcer1 Messages postés 21 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 6 janvier 2009 - 30 oct. 2006 à 09:47
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

cs_badrbadr Messages postés 475 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 3 novembre 2008 1
30 oct. 2006 à 01:32
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] @++
3
sorcer1 Messages postés 21 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 6 janvier 2009
30 oct. 2006 à 09:47
super!
j'ai compris le principe!
après quelques tests il semblent que c'est la bonne voie!
merci.
0
Rejoignez-nous