2 votes

VBA : Cliquer sur une option dans une liste déroulante à partir d'un site web

Je suis désolé si c'est très simple, je suis un débutant, mais j'ai fait beaucoup de recherches sans trouver comment cliquer sur cette option (XBT/USD) à l'intérieur de la liste déroulante : https://ibb.co/jqf7zk

J'ai seulement réussi à afficher la liste avec le code ci-dessous, mais je ne sais pas comment sélectionner XBT/USD car celui-ci n'a pas d'ID dans la source html.

Option Explicit
Sub BrowseToSite()

Dim IE As New SHDocVw.InternetExplorer
Dim oSelect As HTMLInputButtonElement
IE.Visible = True

IE.Navigate "https://www.kraken.com/charts"

Do While IE.ReadyState <> READYSTATE_COMPLETE
Loop

IE.Document.getElementById("pairselect-button").Click

End Sub

Code HTML en fonction de l'élément inspect :

< a tabindex="-1" class="currpairs" data-pair-text="XBT/USD" data-pair="XBTUSD">XBT/USD</a >

Merci d'avance pour votre précieuse réponse.

1voto

Tehscript Points 2348

Vous y êtes presque. Vous avez trouvé le menu déroulant. Il vous suffit de cliquer sur XBT/USD . La méthode la plus simple qui me vient à l'esprit est l'utilisation de getElementsByClassName mais vous ne devez pas nécessairement l'utiliser. Vous pouvez également les trouver en utilisant xpath ou tagname.

Si vous examinez la source, vous verrez qu'il y a beaucoup de class="currpairs" . Si vous les survolez, vous verrez qu'ils appartiennent à chaque élément de la liste déroulante. XBT/USD est le deuxième élément de la liste. La partie manquante de votre code est donc :

IE.Document.getElementsByClassName("currpairs")(1).Click

Remarquez que nous avons utilisé (1) après avoir obtenu la classe currpairs . Cela s'explique par le fait que le comptage commence à partir de 0 dans la liste. Donc (0) représente le premier élément XBT/EUR et (1) représente le deuxième élément XBT/USD dans la liste.

J'espère que cela vous aidera.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X