Advertentie
De sleutel tot automatisering is om dingen sneller en gemakkelijker te doen dan ooit tevoren. Dus wat kost je veel tijd om te doen? Welk deel van uw werklast zou u willen automatiseren?
Als het op productiviteit aankomt, is Excel de meest gebruikte tool die mensen gebruiken voor zaken als het organiseren van financiën, het managen van projecten, en prioriteit geven aan doelen. Vorige week beschreef ik hoe automatiseer IE door groepen URL's in Excel-werkbladen in te stellen en vervolgens het IE-object in Windows te gebruiken om het starten van groepen URL's rechtstreeks vanuit Excel te automatiseren.
Na dat artikel vroegen veel lezers hoe ze hetzelfde konden doen in Firefox of Chrome. Aangezien noch Firefox noch Chrome een soortgelijk object bij Windows hebben dat kan worden gebruikt voor VBA-automatisering, vereist het uitvoeren van hetzelfde soort acties op 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 beheren. 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 zal zeker jarenlang worden ondersteund.
Firefox en Chrome automatiseren met Selenium
Voordat u aan de slag gaat met dit project, moet u de Selenium VBA-wrapper downloaden en installeren. Vervolgens, net zoals ik in het artikel besprak automatisering van IE, 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 het menu-item 'Ontwikkelaar' te gaan en op Ontwerpmodus te klikken. Klik op de knop "Invoegen", klik op de knop ActiveX en teken deze ergens op uw blad. Als je dat eenmaal hebt gedaan, klik je op de knop en vervolgens op 'Code weergeven'.
Zorg ervoor dat u in het venster van de code-editor, linksonder, zowel de "Naam" als het "Bijschrift" wijzigt om weer te geven waarvoor de knop is bedoeld. In dit geval is de knop om de lijst met URL's te openen die u in de spreadsheet heeft vermeld. In mijn geval noemde ik het gewoon cmdLoadURLs en maakte het onderschrift "URL's laden" (dit is wat er op de knop verschijnt).
Vervolgens moet u de Selenium Wrapper inschakelen door op het menu Extra te klikken, vervolgens op "Referenties" te klikken en vervolgens naar de referentie genaamd "SeleniumWrapper Type Library" te bladeren. Vink dat referentievak aan en klik vervolgens op OK.
U bent nu klaar om te beginnen met het schrijven van browserautomatiseringscode met 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 alleen de WebDriver, door het Selenium-object te definiëren als "Nieuwe SeleniumWrapper". Wanneer u de punt typt, worden alle elementen van de typen objecten die u kunt bedienen, zoals browserafbeeldingen, pdf-bestanden, toetsenbordtoetsen en meer, weergegeven.
Deze voorbeeldcode gebruikt de WebDriver. Zodra u het Selenium WebDriver-object in uw code gebruikt en de periode typt, wordt er een zeer lange lijst met methoden en eigenschappen weergegeven die u kunt gebruiken om uw webbrowser te automatiseren.
Het kan even duren om alles te leren wat beschikbaar is, maar Google kan enkele goede voorbeelden geven, achter de voorbeelden die beschikbaar zijn op de Google Code-pagina. Helaas is er, voor zover ik weet, geen eenvoudige handleiding voor het gebruik van Selenium, maar ik zou alle lezers dankbaar zijn die bronnen zouden kunnen verstrekken!
Uw VBA-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. Vervolgens heb ik de knop gemaakt zoals beschreven in het eerste deel van dit artikel.
De code achter de knop is eenvoudig, 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 vergrendeld als de browser om de een of andere reden niet reageert.
Dim selenium As New SeleniumWrapper. WebDriver. Dim FF als object. Dim intRowPosition als geheel getal. Dim-toetsen als nieuw SeleniumWrapper.keys selenium. Start "firefox", " https://www.google.com" selenium.setTimeout ("120000") selenium.setImplicitWait (5000) intRowPosition = 2. selenium. Open Sheet1.Range ("A" & intRowPosition)
De laatste paar regels stellen de rij van de Excel-gegevens in om te lezen (rij twee, waar de eerste URL is opgeslagen in de spreadsheet) en voert vervolgens de "selenium.open" -methode uit om de URL van die spreadsheet te lezen en te openen in Firefox.
In het volgende codegedeelte wordt de rijaanwijzer verhoogd en wordt de volgende URL in de lijst gelezen. Als de cel niet leeg is, gebruikt deze de SendKeys-methode om een nieuw tabblad in Firefox te starten, leest de volgende URL van die verkoop en opent de URL op dat nieuwe tabblad.
intRowPosition = intRowPosition + 1 While Sheet1.Range ("A" & intRowPosition) <> vbNullString selenium. SendKeys-sleutels. Controle & "t" selenium. Open Sheet1.Range ("A" & intRowPosition) intRowPosition = intRowPosition + 1. Wend Set IE = niets
Het script loopt door uw hele lijst totdat alle URL's op hun eigen tabbladen zijn geopend. Hier is de browser nadat de lus een tweede keer is doorlopen en MUO op een nieuw tabblad heeft geopend.
Als u deze code voor Chrome wilt gebruiken, hoeft u alleen maar de regel 'selenium' te wijzigen. Start in plaats daarvan "firefox" naar "chrome".
Maak nu uw eigen script
Zoals ik hierboven al zei, is de beste manier om de kracht van de Selenium Wrapper te leren, het typen van "selenium" in uw code, druk op de periode 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 je kunt zien, zijn er veel meer dingen die je kunt doen die veel verder gaan dan de reikwijdte van dit artikel. Maar experimenteer en heb plezier. Gelukkig verschijnen de meeste functies in de Help-tekst waarin staat welke parameters elke functie verwacht. Dat kan veel helpen bij het uitzoeken hoe je het moet gebruiken.
Hoe zit het met je volgende scriptproject? uw eigen eenvoudige app maken met VBA Hoe u uw eigen eenvoudige app kunt maken met VBAWil je weten hoe je je eigen VBA-applicatie maakt om problemen op te lossen? Gebruik deze tips om uw eigen VBA-software te bouwen. Lees verder ?
Ryan heeft een BSc-graad in elektrotechniek. Hij heeft 13 jaar in automatiseringstechniek gewerkt, 5 jaar in IT en is nu een Apps Engineer. Hij was een voormalig hoofdredacteur van MakeUseOf, hij sprak op nationale conferenties over datavisualisatie en was te zien op nationale tv en radio.