none
Cliquer sur 1 bouton dans 1 page web RRS feed

  • Question

  • Bonjour à tous,

    Je cherche à cliquer sur 1 bouton sur 1 page web.

    La page est celle-ci :

    http://www.digikey.com/product-search/en/integrated-circuits-ics/embedded-microcontrollers/2556109?quantity=1&ColumnSort=1000011

    Le bouton que je cherche à cliquer est le bouton Download Table.

    Si je clique sur Inspecter sur en faisant clic droit sur ce bouton dans Chrome, j'obtient ceci :

    <input class="button" type="button" value="Download Table" onclick="$(downloadform).submit();">

    Mais je ne trouve nulle part comment faire, j'ai essayé en cherchant avec le HtmlElement.Id, InnerText, OuterText, GetAttribute("class") et GetAttribute("value") pour tenter des InvokeMember("click") mais rien n'y fait...


    Merci d'avance pour votre aide.

    Stéphane

    PS : le code :

        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    
            Dim _url As String = "http://www.digikey.com/product-search/en/integrated-circuits-ics/embedded-microcontrollers/2556109?quantity=1&ColumnSort=1000011"
    
            WebBrowser1.Navigate(_url)
    
        End Sub
    
        Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    
            Dim hd As HtmlDocument = WebBrowser1.Document
    
            For Each he As HtmlElement In hd.All
    
                If he.Id = "Download Table" Then
    
                    he.InvokeMember("click")
    
                End If
    
                If he.InnerText = "Download Table" Then
    
                    he.InvokeMember("click")
    
                End If
    
                If he.OuterText = "Download Table" Then
    
                    he.InvokeMember("click")
    
                End If
    
                If he.GetAttribute("class") = "button" Then
                    'Check even the text if you want
                    If he.GetAttribute("value") = "download-table" Then
                        'Invoke your event
                        he.InvokeMember("click")
                    End If
                End If
    
                If he.GetAttribute("value") = "download-table" Then
                    'Invoke your event
                    he.InvokeMember("click")
                End If
    
            Next
    
        End Sub


    mardi 18 octobre 2016 10:25

Réponses

  • Bonjour Stéphane2009,

    Votre code peut se résumer à ça :

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim _url As String = "http://www.digikey.com/product-search/en/integrated-circuits-ics/embedded-microcontrollers/2556109?quantity=1&ColumnSort=1000011"
    
            WebBrowser1.Navigate(_url)
        End Sub
    
        Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
            For Each Element As HtmlElement In WebBrowser1.Document.GetElementsByTagName("input")
                If Element.OuterHtml.Contains("Download Table") Then
                    Element.InvokeMember("click")
                End If
            Next
        End Sub

    Testé bien évidemment.

    Cordialement,

    • Marqué comme réponse Stéphane2009 mardi 18 octobre 2016 12:50
    mardi 18 octobre 2016 12:40

Toutes les réponses

  • Bonjour Stéphane2009,

    Votre code peut se résumer à ça :

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim _url As String = "http://www.digikey.com/product-search/en/integrated-circuits-ics/embedded-microcontrollers/2556109?quantity=1&ColumnSort=1000011"
    
            WebBrowser1.Navigate(_url)
        End Sub
    
        Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
            For Each Element As HtmlElement In WebBrowser1.Document.GetElementsByTagName("input")
                If Element.OuterHtml.Contains("Download Table") Then
                    Element.InvokeMember("click")
                End If
            Next
        End Sub

    Testé bien évidemment.

    Cordialement,

    • Marqué comme réponse Stéphane2009 mardi 18 octobre 2016 12:50
    mardi 18 octobre 2016 12:40
  • Merci beaucoup Arthur LeMeur, cela fonctionne parfaitement.

    J'étais pas loin, c'était dans OuterHtml... o_O

    Bonne journée.

    Cordialement,

    Stéphane

    mardi 18 octobre 2016 12:50