Comment automatiser Firefox ou Chrome avec Excel VBA et Selenium

Comment automatiser Firefox ou Chrome avec Excel VBA et Selenium / les fenêtres

La clé de l'automatisation est de faire les choses plus rapidement et plus facilement que jamais. Alors qu'est-ce qui vous prend longtemps? Quelle partie de votre charge de travail voudriez automatiser?

Modèles de gestion de projet Excel utiles pour le suivi 10 Modèles de gestion de projet Excel utiles pour le suivi Les modèles de gestion de projet Excel peuvent vous aider à reproduire des projets réussis. Voici les modèles Microsoft Excel essentiels pour vous. En savoir plus et hiérarchiser les objectifs Utiliser les tâches Excel et Google pour créer le meilleur outil de gestion d'objectifs jamais Utiliser les tâches Excel et Google pour créer le meilleur outil de gestion d'objectifs de tous les temps, j'ai commencé à réaliser que je travaillais très durement, mais si quelqu'un m'a demandé si je pensais ou non travailler dans un but plus large, je devrais dire que je ne… Lire la suite. La semaine dernière, j’ai expliqué comment automatiser Internet Explorer à l’aide de VBA pour automatiser des sessions Internet Explorer à partir d’une feuille de calcul Excel. Utilisation de VBA pour automatiser des sessions Internet Explorer à partir d’une feuille de calcul Excel. Script d'applications (VBA) à partir de toute application qui le prend en charge, tel que Word, Outlook ou Excel. Lisez Plus en configurant des groupes d'URL dans des feuilles Excel, puis en utilisant l'objet IE de Windows pour automatiser le lancement de groupes d'URL directement à partir d'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 inclus d’objet similaire avec Windows pouvant ê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 Selenium VBA - un wrapper COM Windows 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. C’est un outil d’automatisation puissant et couramment utilisé que de nombreux éditeurs de navigateurs classiques intègrent Selenium en tant que partie native de leur navigateur. Son utilisation dans vos applications d'automatisation sera assurée pour les années à venir..

Automatisation de Firefox et de Chrome avec Selenium

Avant de commencer avec ce projet, vous devez télécharger et installer le wrapper Selenium VBA. Ensuite, comme je l’ai expliqué dans l’article sur l’automatisation d’Internet Explorer à l’aide de VBA pour automatiser des sessions Internet Explorer à partir d’une feuille de calcul Excel. Utilisation de VBA pour automatiser des sessions Internet Explorer à partir d’une feuille de calcul Excel. Son intégration à Windows permet de contrôler Internet Explorer de plusieurs manières surprenantes. Script Visual Basic pour Applications (VBA) à partir de toute application qui le prend en charge, tel que Word, Outlook ou Excel. En savoir plus, pour écrire un VBA dans Excel, vous devez entrer en mode conception et afficher le code. Si vous n'avez jamais fait cela auparavant, il vous suffit d'entrer dans le “Développeur” élément de menu et cliquez sur Mode Création. Clique sur le “Insérer” bouton, cliquez sur le bouton ActiveX et dessinez-le sur votre feuille quelque part. Une fois que vous avez fait cela, cliquez sur le bouton puis cliquez sur “Voir le code”.

Dans la fenêtre de l'éditeur de code, dans le coin inférieur gauche, veillez à modifier les deux “prénom” et le “Légende” pour refléter à quoi sert le bouton. Dans ce cas, le bouton ouvrira la liste des URL que vous avez répertoriées dans la feuille de calcul. Dans mon cas, je l'ai simplement appelé cmdLoadURLs et j'ai créé la légende “Charger des URL” (c'est ce qui apparaît sur le bouton).

Ensuite, vous devez activer Selenium Wrapper en cliquant sur le menu Outils, puis sur “Références”, puis accédez à 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 à écrire le code d'automatisation du navigateur à l'aide de Selenium Wrapper.!

Fonctionnalité du wrapper Selenium

Le Selenium VBA Wrapper vous donne beaucoup plus de fonctionnalités que je ne pourrai vous en montrer dans cet article. Vous pouvez voir la quantité disponible au-delà du WebDriver en définissant l'objet Selenium comme suit: “Nouveau SeleniumWrapper”. Lorsque vous tapez la période, tous les éléments des types d’objets que vous pouvez contrôler sont affichés, tels que les images de navigateur, les fichiers PDF, les touches du clavier, etc..

Cet exemple de code utilisera WebDriver. Une fois que vous avez utilisé l'objet Selenium WebDriver dans votre code et que vous avez saisi la période, une liste très longue de méthodes et de propriétés que vous pouvez utiliser pour automatiser votre navigateur Web s'affiche..

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 la page Code Google. Malheureusement, à ma connaissance, il n’existe pas de guide simple sur l’utilisation de Selenium, mais je serais reconnaissant à tous les lecteurs qui pourraient fournir des ressources.!

Écrire votre code de sélénium VBA

Dans cet exemple, comme dans l'article IE, j'ai créé une liste d'URL que je veux 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. le “sélénium.start” méthode va le faire. Les méthodes setTimeout et setImplicitWait ne sont pas critiques, mais peuvent empêcher le verrouillage définitif de votre application si le navigateur ne répond pas pour une raison quelconque.

Dim selenium As New SeleniumWrapper.WebDriver Dim FF As Object Dim intRowPosition As Integer Touches Dim As New Nouveau SeleniumWrapper.keys selenium.Start "firefox", "http://www.google.com" selenium.setTimeout ("120000") sélénium. setImplicitWait (5000) intRowPosition = 2 selenium.Open Sheet1.Range ("A" & intRowPosition)

Les deux dernières lignes définissent la ligne des données Excel à lire (deuxième ligne, où la première URL est stockée dans la feuille de calcul), puis effectue la “sélénium.ouverture” méthode pour lire l'URL de cette feuille de calcul et l'ouvrir dans Firefox.

La section de code suivante 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 l'ouvre dans cet nouvel onglet..

intRowPosition = intRowPosition + 1 While Sheet1.Range ("A" & intRowPosition) <> vbNullString selenium.SendKeys keys.Control & "t" selenium.Open Sheet1.Range ("A" & intRowPosition) intRowPosition = intRowPosition = 1 Wend Set = Rien

Le script parcourt toute votre liste jusqu'à ce que toutes les URL soient ouvertes dans leurs propres onglets. Voici le navigateur après la boucle une seconde fois et a ouvert MUO dans un nouvel onglet.

Si vous souhaitez utiliser ce code pour Chrome, il vous suffit de modifier la ligne. “sélénium.Start “firefox”” à “chrome” au lieu.

Maintenant, créez votre propre script

Comme je l’ai mentionné ci-dessus, le meilleur moyen d’apprendre le pouvoir du Selenium Wrapper est de taper “sélénium” dans votre code, appuyez sur la période et parcourez la très longue liste de propriétés et méthodes disponibles. 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 constater, beaucoup d'autres choses que vous pouvez faire vont bien au-delà de la portée de cet article. Mais expérimentez et amusez-vous. Heureusement, la plupart des fonctions feront apparaître un texte d’aide qui vous indiquera les paramètres que chaque fonction attend. Cela peut beaucoup aider à comprendre comment l’utiliser..

Utilisez-vous VBA pour automatiser votre ordinateur? Avez-vous déjà automatisé vos sessions de navigateur à partir de VBA? Partagez vos propres astuces et expériences dans les commentaires ci-dessous.!

En savoir plus sur: Google Chrome, Microsoft Excel, Mozilla Firefox, Programmation Visual Basic.