locked
Automatisation d'une page web RRS feed

  • Discussion générale

  •  

    Premierement, chargez une page web dans un objet WebBrowser, puis utilisez la fonction GetElementsByTagName ou GetElementsByID pour localiser les éléments de la page Web dans WebBrowser.Document et les automatiser (p. ex. Extraire le texte de la page, site de login, recherche, clic sur le bouton ou le lien hypertexte).

     

     

     

    Au préalable, vous devez trouver le code source html des éléments web via la « vue source » (menu contextuel de la page web-> l'élément de menu "Afficher la source").

     

     

     

    Par exemple : Comment puis-je faire automatiquement la connexion au site Web (entrée nom d’utilisateur/mot de passe et cliquer sur le bouton Login) ?

     

     

     

    Supposons que cette page http://www.website.com/login.aspx comporte les éléments suivants :

    <input name="UserNameTextBox" type="text" value=”NomUtilisateur" id="UserNameTextBox">

    <input name="PasswordTextBox" type="text" value=" NomUtilisateur " id="PasswordTextBox">

    <INPUT type=submit value="Login" name="LoginButton">

     

    Public Class Form1
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            ' Part 1: utiliser le controle  WebBrowser pour charger la page web
            WebBrowser1.Navigate(http://www.website.com/login.aspx) 
    
            System.Threading.Thread.Sleep(2000) ' delay 2 secondes pour afficher la page 
    
            ' Part 2: introduire de facon automatique le nom d’utilisateur et le mot de passe
    Dim theElementCollection As HtmlElementCollection
    theElementCollection = WebBrowser1.Document.GetElementsByTagName("input") For Each curElement As HtmlElement In theElementCollection Dim controlName As String = curElement.GetAttribute("name").ToString If controlName = "UserNameTextBox" Then curElement.SetAttribute("Value", "Nom utilisateur") ElseIf controlName = "PasswordTextBox" Then curElement.SetAttribute("Value", "Mot de passe") 'on peut recuperer la valeur des elements comme ca: MessageBox.Show(curElement.GetAttribute("Value")) End If Next ' Part 3: appuyer le bouton Login de facon automatique theElementCollection = WebBrowser1.Document.GetElementsByTagName("input") For Each curElement As HtmlElement In theElementCollection If curElement.GetAttribute("value").Equals("Login") Then curElement.InvokeMember("click") ' javascript a une methode click si on a besoin d’appeller les elements bouton ou hyperlink End If Next End Sub End Class

     

     

     

     

    Pour plusieurs questions sur Visual Basic .NET, visitez Foire aux Questions – Visual Basic .NET FAQ et didacticiels

     
    Alex Petrescu - MSFT
    jeudi 11 février 2010 15:12