Hoe Firefox of Chrome te automatiseren met Excel VBA en Selenium
De sleutel tot automatisering is dingen sneller en gemakkelijker doen dan ooit tevoren. Dus wat kost je veel tijd om te doen? Welk deel van uw workload zou willen automatiseren?
Als het gaat om productiviteit, is Excel de meest gebruikte tool voor het organiseren van zaken, het beheren van projecten 10 Handige Excel-projectmanagementsjablonen voor bijhouden 10 Handige Excel-projectmanagementsjablonen voor het traceren Projectmanagementsjablonen kunnen u helpen succesvolle projecten te repliceren. Hier zijn de essentiële Microsoft Excel-sjablonen voor u. Meer lezen en prioriteiten stellen Gebruik Excel & Google-taken om de beste doelen managementtool te maken Ooit Excel- en Google-taken gebruiken om de beste doelen te maken Managementtool De laatste tijd begin ik te beseffen dat ik heel hard werk, maar als iemand vroeg me of ik voel dat ik aan een groter doel werk, ik zou moeten zeggen dat ik echt niet ... Lees meer. Vorige week beschreef ik hoe IE te automatiseren VBA gebruiken om sessies van Internet Explorer te automatiseren vanuit een Excel-spreadsheet VBA gebruiken om sessies van Internet Explorer te automatiseren vanuit een Excel-spreadsheet Door de integratie met Windows kan Internet Explorer op een aantal verrassende manieren worden beheerd met Visual Basic voor Toepassingen (VBA) script van elke toepassing die dit ondersteunt, zoals Word, Outlook of Excel. Meer lezen door groepen URL's in Excel-bladen in te stellen en vervolgens het IE-object in Windows te gebruiken om startende groepen met URL's rechtstreeks vanuit Excel te automatiseren.
Naar aanleiding van dat artikel vroegen veel lezers hoe ze hetzelfde konden doen in Firefox of Chrome. Omdat noch Firefox noch Chrome een soortgelijk object bij Windows hebben dat voor VBA-automatisering kan worden gebruikt, vereist het uitvoeren van dezelfde soort acties in die andere browsers een extra stap. Die stap is de installatie van Selenium VBA - een Windows COM-wrapper voor Selenium.
Hiermee kunt u oproepen uitvoeren vanuit elke toepassing die VBA ondersteunt om een browser te openen (niet alleen IE) en die browsersessie te besturen. Het is een krachtige automatiseringstool die zo vaak wordt gebruikt dat veel populaire browserleveranciers Selenium opnemen als een native onderdeel van hun browser. Het gebruik ervan in uw automatiseringstoepassingen wordt zeker nog jarenlang ondersteund.
Automatiseren van Firefox en Chrome met Selenium
Voordat u aan de slag gaat met dit project, moet u de Selenium VBA-wrapper downloaden en installeren. Vervolgens, precies zoals ik in het artikel over het automatiseren van IE heb besproken VBA gebruiken om sessies van Internet Explorer te automatiseren vanuit een Excel-spreadsheet VBA gebruiken om sessies van Internet Explorer te automatiseren vanuit een Excel-spreadsheet Dankzij de integratie met Windows kan Internet Explorer op een aantal verrassende manieren worden bestuurd Visual Basic for Applications (VBA) -script van elke toepassing die dit ondersteunt, zoals Word, Outlook of Excel. Lees Meer, om een VBA in Excel te schrijven, moet je in de ontwerpmodus komen en de code bekijken. Als je dit nog nooit eerder hebt gedaan, hoef je alleen maar naar de “Ontwikkelaar” menu-item en klik op Ontwerpmodus. Klik op de “invoegen” knop, klik op de ActiveX-knop en teken deze ergens op uw blad. Als je dat hebt gedaan, klik je op de knop en vervolgens op “Bekijk code”.
Zorg ervoor dat in het venster code-editor, linksonder, beide zijn gewijzigd “Naam” en de “Onderschrift” om weer te geven waar de knop voor is. In dit geval is de knop om de lijst met URL's te openen die u in het werkblad hebt vermeld. In mijn geval heb ik het gewoon cmdLoadURLs genoemd en het bijschrift gemaakt “URL's laden” (dit is wat verschijnt op de knop).
Vervolgens moet je de Selenium Wrapper inschakelen door op het menu Tools te klikken en vervolgens op te klikken “Referenties”, en blader vervolgens naar de gerefereerde referentie “SeleniumWrapper Type Library”. Vink het vakje aan en klik vervolgens op OK.
U bent nu klaar om te beginnen met het schrijven van de browserautomatiseringscode met behulp van de Selenium Wrapper!
Functionaliteit van de Selenium Wrapper
De Selenium VBA Wrapper geeft je veel meer functionaliteit dan ik je in dit ene artikel kan laten zien. U kunt zien hoeveel er beschikbaar is buiten de WebDriver, door het Selenium-object te definiëren als “Nieuwe SeleniumWrapper”. Wanneer u de punt typt, worden alle elementen van de soorten objecten die u kunt bedienen neergezet, zoals browserafbeeldingen, PDF-bestanden, toetsenbordtoetsen en meer.
Deze voorbeeldcode gebruikt de WebDriver. Zodra u het Selenium WebDriver-object in uw code gebruikt en de periode typt, wordt er een hele lange lijst met methoden en eigenschappen weergegeven die u kunt gebruiken om uw webbrowser te automatiseren.
Het kan enige tijd duren om alles te weten te komen wat beschikbaar is, maar Google kan een aantal goede voorbeelden weergeven, achter de voorbeelden die beschikbaar zijn op de Google Code-pagina. Helaas, voor zover ik weet, is er geen eenduidige gids voor het gebruik van Selenium, maar ik zou dankbaar zijn voor alle lezers die middelen zouden kunnen leveren!
Uw Vela-seleniumcode schrijven
In dit voorbeeld, zoals in het IE-artikel, heb ik een lijst met URL's gemaakt die ik automatisch in Firefox wil openen. Ik maakte toen de knop zoals beschreven in het eerste deel van dit artikel.
De code achter de knop is duidelijk, maar ik ga uitleggen wat elke sectie doet. Allereerst moet u de Firefox-applicatie starten. De “selenium.start” methode zal dat doen. De methoden setTimeout en setImplicitWait zijn niet kritisch, maar kunnen voorkomen dat uw toepassing voor altijd wordt geblokkeerd als de browser om een of andere reden niet reageert.
Dim selenium als nieuw SeleniumWrapper.WebDriver Dim FF als object Dim intRowPosition als integer Dim-toetsen als nieuw SeleniumWrapper.keys selenium.Start "firefox", "http://www.google.com" selenium.setTimeout ("120000") selenium. setImplicitWait (5000) intRowPosition = 2 selenium.Open Sheet1.Range ("A" & intRowPosition)
De laatste paar regels stellen de rij Excel-gegevens in om te lezen (rij twee, waar de eerste URL in het werkblad is opgeslagen) en voert vervolgens de “selenium.open” methode om de URL van die spreadsheet te lezen en deze in Firefox te openen.
Het volgende deel van de code verhoogt de rijaanwijzer en leest de volgende URL in de lijst. Als de cel niet leeg is, gebruikt deze de SendKeys-methode om een nieuw tabblad in Firefox te openen, leest de volgende URL van die verkoop en opent de URL in dat nieuwe tabblad.
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 IE = Niets
Het script doorloopt uw volledige lijst totdat alle URL's open zijn op hun eigen tabbladen. Hier is de browser nadat de lus een tweede keer is doorgekomen en MUO op een nieuw tabblad heeft geopend.
Als u deze code voor Chrome wilt gebruiken, hoeft u alleen maar de regel te wijzigen “selenium.Start “firefox”” naar “chroom” in plaats daarvan.
Maak nu je eigen script
Zoals ik hierboven al zei, is typen het beste om de kracht van de Selenium Wrapper te leren “selenium” in je code, klik op de punt en blader door de zeer lange lijst met beschikbare eigenschappen en methoden. U kunt bijvoorbeeld de eigenschap .URL gebruiken om de URL van het momenteel geopende tabblad in Firefox of Chrome te verkrijgen.
Zoals u kunt zien, zijn er veel meer dingen die u kunt doen die veel verder gaan dan het bereik van dit artikel. Maar experimenteer en heb plezier. Gelukkig zullen de meeste functies help-tekst tonen die laat zien welke parameters elke functie verwacht. Dat kan veel helpen bij het uitzoeken hoe het te gebruiken.
Gebruikt u VBA om uw computer te automatiseren? Heb je je browsersessies ooit van VBA geautomatiseerd? Deel uw eigen tips en ervaringen ermee in de opmerkingen hieronder!
Ontdek meer over: Google Chrome, Microsoft Excel, Mozilla Firefox, Visual Basic Programming.