Manipuler GoogleChrome avec VBA
Bonjour a tous,
Comme je l'ai indiqué dans le sujet de ce post je souhaite automatiser l'extraction d'information sur un site via VBA. Au départ j'avais opté pour sélénium en python mais le site de la boite ou je bosse a tellement sécuriser les accès que je ne peux pas y accéder avec sélénium. En allant sur certaines forum je suis tombé sur une solution en VBA Shell je l'ai appliquer et ca fonctionne. Sauf que je ne maitrise pas la Library.
Ci-joint mon code argumenter.
Je ne peux pas voir donner le site il est inaccessible si vous n'êtes pas sur le réseau de l'entreprise.
Je voudrais savoir si s'était possible d'utiliser un getselectbyid ou xpath au lieu de tous ses tab .
Sur certains site je n'arrive pas accéder a certaine item avec le TAB.
PS:Je suis ouvert pour d'autre approche ou methode
Cordialement
Sub Test()
Application.StatusBar = "Ouverture chrome"
Dim URL$, ChromePath$
Dim Wsh As Object
Set Wsh = CreateObject("wscript.shell")
'Je declare ma variable url contenant le site que je veux
Kador = "xxxxxxxxxxxxxxxxxxxxx"
'Je declare une variable qui contient le chemin absolu de mon executable chrome
ChromePath = """C:\Program Files\Google\Chrome\Application\Chrome.exe"""
'Je lance un script shell qui excute Chrome et lance la recherche du site KADOR3
Shell (ChromePath & " -url " & Kador)
'J'attend 5 seconde
Application.Wait (Now + TimeValue("0:00:05"))
Application.StatusBar = "Fermeture chrome"
'Je me positionne sur le bouton export
Wsh.SendKeys ("{TAB}")
Wsh.SendKeys ("{TAB}")
Wsh.SendKeys ("{TAB}")
Wsh.SendKeys ("{TAB}")
Wsh.SendKeys ("{TAB}")
Wsh.SendKeys ("{TAB}")
Wsh.SendKeys ("{TAB}")
Wsh.SendKeys ("{TAB}")
Wsh.SendKeys ("{TAB}")
Wsh.SendKeys ("{TAB}")
Wsh.SendKeys ("{TAB}")
Wsh.SendKeys ("{TAB}")
Wsh.SendKeys ("{TAB}")
Wsh.SendKeys ("{TAB}")
Wsh.SendKeys ("{TAB}")
Wsh.SendKeys ("{TAB}")
Wsh.SendKeys ("{TAB}")
Wsh.SendKeys ("{TAB}")
Wsh.SendKeys ("{TAB}")
Wsh.SendKeys ("{TAB}")
Wsh.SendKeys ("{TAB}")
Wsh.SendKeys ("{TAB}")
Wsh.SendKeys ("{TAB}")
'Je clique sur le bouton export
Wsh.SendKeys ("{ENTER}")
'Jattend 5 seconde
Application.Wait (Now + TimeValue("0:00:05"))
'Je clique sur telecharger
Wsh.SendKeys ("{ENTER}")
End SubBonjour,
Je n'ai pas la solution mais le sujet m'intéresse alors je propose un essai de simplification de la saisie des sendkeys en attendant que vous obteniez meilleure réponse :
Sub Test()
Application.StatusBar = "Ouverture chrome"
Dim URL$, ChromePath$
Dim Wsh As Object
Set Wsh = CreateObject("wscript.shell")
'Je declare ma variable url contenant le site que je veux
Kador = "xxxxxxxxxxxxxxxxxxxxx"
'Je declare une variable qui contient le chemin absolu de mon executable chrome
ChromePath = """C:\Program Files\Google\Chrome\Application\Chrome.exe"""
'Je lance un script shell qui excute Chrome et lance la recherche du site KADOR3
Shell (ChromePath & " -url " & Kador)
'J'attend 5 seconde
Application.Wait (Now + TimeValue("0:00:05"))
Application.StatusBar = "Fermeture chrome"
'Je me positionne sur le bouton export
PressKey "{TAB}", 23 '23 tabulations
'Je clique sur le bouton export
PressKey "{ENTER}"
'Jattend 5 seconde
Application.Wait (Now + TimeValue("0:00:05"))
'Je clique sur telecharger
PressKey "{ENTER}"
End Sub
Sub PressKey(Key as string, optional Number as long = 1)
for i = 1 to Number
application.sendkeys Key
next i
end subCdlt,
Re @3GB,
Merci pour ta participation.
Je viens d'essayer ton algo et il ne clique pas sur le bouton.
Le curseur s'arrête bien sur le bouton mais le PressKey "{ENTER}" n'est pas effectuer
Re,
Peut-être qu'il faudrait rajouter un petit wait juste avant ? As-tu essayé ?
Cdlt,