Publicité
La clé de l'automatisation est de faire les choses plus rapidement et plus facilement que jamais auparavant. Qu'est-ce qui vous prend donc beaucoup de temps? Quelle partie de votre charge de travail souhaiterait automatiser?
En ce qui concerne la productivité, Excel est l'outil le plus couramment utilisé par les utilisateurs pour organiser des finances, gestion de projets, et hiérarchiser les objectifs. La semaine dernière, j'ai décrit comment automatiser IE en configurant des groupes d'URL dans des feuilles Excel, puis en utilisant l'objet IE dans Windows pour automatiser le lancement de groupes d'URL directement depuis Excel.
Suite à cet article, de nombreux lecteurs ont demandé comment faire la même chose dans Firefox ou Chrome. Étant donné que ni Firefox ni Chrome n'ont un objet similaire inclus avec Windows qui peut être utilisé pour l'automatisation VBA, effectuer le même type d'actions sur ces autres navigateurs nécessite une étape supplémentaire. Cette étape est l'installation de Sélénium VBA - un wrapper Windows COM pour Selenium.
Il vous permet d'effectuer des appels à partir de n'importe quelle application prenant en charge VBA afin d'ouvrir un navigateur - pas seulement IE - et de contrôler cette session de navigateur. Il s'agit d'un outil d'automatisation puissant qui est si couramment utilisé que de nombreux fournisseurs de navigateurs populaires intègrent Selenium en tant que partie native de leur navigateur. Son utilisation dans vos applications d'automatisation sera certainement prise en charge pour les années à venir.
Automatiser Firefox et Chrome avec Selenium
Avant de commencer ce projet, vous devez télécharger et installer le wrapper Selenium VBA. Ensuite, tout comme je l'ai discuté dans l'article sur automatiser IE, pour écrire un VBA dans Excel, vous devez passer en mode conception et afficher le code. Si vous ne l'avez jamais fait auparavant, il vous suffit d'accéder à l'élément de menu "Développeur" et de cliquer sur Mode Création. Cliquez sur le bouton "Insérer", cliquez sur le bouton ActiveX et dessinez-le quelque part sur votre feuille. Une fois que vous avez fait cela, cliquez sur le bouton puis sur «Afficher le code».
Dans la fenêtre de l'éditeur de code, en bas à gauche, assurez-vous de changer à la fois le "Nom" et la "Légende" pour refléter à quoi sert le bouton. Dans ce cas, le bouton sera d'ouvrir la liste des URL que vous avez répertoriées dans la feuille de calcul. Dans mon cas, je viens de l'appeler cmdLoadURLs et j'ai créé la légende «Charger les URL» (c'est ce qui apparaît sur le bouton).
Ensuite, vous devez activer le sélénium Wrapper en cliquant sur le menu Outils, puis cliquez sur «Références», puis recherchez la référence appelée «bibliothèque de types SeleniumWrapper». Cochez cette case de référence, puis cliquez sur OK.
Vous êtes maintenant prêt à commencer à écrire du code d’automatisation du navigateur à l’aide du sélénium Wrapper!
Fonctionnalité de l'emballage de sélénium
Le Wrapper Selenium VBA vous offre beaucoup plus de fonctionnalités que je ne pourrai vous le montrer dans cet article. Vous pouvez voir la quantité disponible au-delà du WebDriver, en définissant l'objet Selenium comme «New SeleniumWrapper». Lorsque vous saisissez la période, elle affiche tous les éléments des types d'objets que vous pouvez contrôler, comme les images du navigateur, les fichiers PDF, les touches du clavier, etc.
Cet exemple de code utilisera le WebDriver. Une fois que vous avez utilisé l’objet Selenium WebDriver dans votre code et que vous avez saisi la période, il répertorie une très longue liste de méthodes et de propriétés que vous pouvez utiliser pour automatiser votre navigateur Web.
Cela peut prendre un certain temps pour apprendre tout ce qui est disponible, mais Google peut trouver de bons exemples, derrière les exemples disponibles sur le site. Page de code Google. Malheureusement, pour autant que je sache, il n'y a pas de guide simple pour utiliser le sélénium, mais je serais reconnaissant à tous les lecteurs qui pourraient fournir des ressources!
Écrire votre code sélénium VBA
Dans cet exemple, comme dans l'article IE, j'ai créé une liste d'URL que je souhaite ouvrir automatiquement dans Firefox. J'ai ensuite créé le bouton comme décrit dans la première partie de cet article.
Le code derrière le bouton est simple, mais je vais expliquer ce que fait chaque section. Tout d'abord, vous devez lancer l'application Firefox. La méthode «selenium.start» le fera. Les méthodes setTimeout et setImplicitWait ne sont pas essentielles, mais peuvent empêcher votre application de se bloquer définitivement si le navigateur ne répond pas pour une raison quelconque.
Dim sélénium Comme nouveau SeleniumWrapper. WebDriver. Dim FF As Object. Dim intRowPosition As Integer. Dim touches Comme nouveau SeleniumWrapper.keys selenium. Démarrez "firefox", " https://www.google.com" selenium.setTimeout ("120000") selenium.setImplicitWait (5000) intRowPosition = 2. sélénium. Ouvrez Sheet1.Range ("A" & intRowPosition)
Les deux dernières lignes définissent la ligne des données Excel à lire (ligne deux, où la première URL est stockée dans le feuille de calcul), puis exécute la méthode «selenium.open» pour lire l'URL de cette feuille de calcul et l'ouvrir dans Firefox.
La section suivante de code incrémente le pointeur de ligne et lit l'URL suivante dans la liste. Si la cellule n'est pas vide, elle utilise ensuite la méthode SendKeys pour lancer un nouvel onglet dans Firefox, lit l'URL suivante de cette vente et ouvre l'URL dans ce nouvel onglet.
intRowPosition = intRowPosition + 1 While Sheet1.Range ("A" & intRowPosition) <> vbNullString sélénium. Clés SendKeys. Contrôle et sélénium "t". Ouvrez Sheet1.Range ("A" & intRowPosition) intRowPosition = intRowPosition + 1. Wend Set IE = Nothing
Le script parcourra l'intégralité de votre liste jusqu'à ce que toutes les URL soient ouvertes dans leurs propres onglets. Voici le navigateur après que la boucle soit passée une deuxième fois et a ouvert MUO dans un nouvel onglet.
Si vous souhaitez utiliser ce code pour Chrome, il vous suffit de changer la ligne «sélénium. Démarrez plutôt "firefox" "en" chrome ".
Créez maintenant votre propre script
Comme je l'ai mentionné ci-dessus, la meilleure façon d'apprendre la puissance du sélénium Wrapper est de taper «sélénium» dans votre code, frappez la période et parcourez simplement la très longue liste de propriétés disponibles et méthodes. Par exemple, vous pouvez utiliser la propriété .URL pour obtenir l'URL de l'onglet actuellement ouvert dans Firefox ou Chrome.
Comme vous pouvez le voir, il y a beaucoup d'autres choses que vous pouvez faire qui vont bien au-delà de la portée de cet article. Mais expérimentez et amusez-vous. Heureusement, la plupart des fonctions afficheront un texte d'aide qui vous montrera quels paramètres chaque fonction attend. Cela peut être très utile pour déterminer comment l'utiliser.
Pour votre prochain projet de script, que diriez-vous créer votre propre application simple avec VBA Comment créer votre propre application simple avec VBAVous voulez savoir comment créer votre propre application VBA pour résoudre des problèmes? Utilisez ces conseils pour créer votre propre logiciel VBA. Lire la suite ?
Ryan est titulaire d'un BSc en génie électrique. Il a travaillé 13 ans dans l'ingénierie d'automatisation, 5 ans dans l'informatique et est maintenant ingénieur d'applications. Ancien rédacteur en chef de MakeUseOf, il a pris la parole lors de conférences nationales sur la visualisation des données et a été présenté à la télévision et à la radio nationales.