Annons

Nyckeln till automatisering är att göra saker snabbare och enklare än du någonsin gjort tidigare. Så vad tar dig lång tid att göra? Vilken del av din arbetsbelastning vill automatisera?

När det gäller produktivitet är Excel det vanligaste verktyget som används av människor för saker som att organisera ekonomi, hantera projekt, och prioritera mål. Förra veckan beskrev jag hur automatisera IE genom att ställa in grupper av webbadresser i Excel-ark och sedan använda IE-objektet i Windows för att automatisera startande grupper av URL: er direkt från Excel.

Efter denna artikel frågade många läsare hur man gör samma sak i Firefox eller Chrome. Eftersom varken Firefox eller Chrome har ett liknande objekt som ingår i Windows som kan användas för VBA-automatisering, kräver ett extra steg att utföra samma typ av åtgärder på de andra webbläsarna. Det steget är installationen av Selen VBA - Windows COM-omslag för Selenium.

Det låter dig utföra samtal från alla program som stöder VBA för att öppna en webbläsare - inte bara IE - och kontrollera den webbläsarsessionen. Det är ett kraftfullt automatiseringsverktyg som används så vanligt att många populära webbläsare levererar Selenium som en ursprunglig del av sin webbläsare. Att använda det i dina automatiseringsapplikationer stöds säkert under många år framöver.

instagram viewer

Automatisera Firefox och Chrome med Selenium

Innan du börjar med detta projekt måste du ladda ner och installera Selenium VBA-omslaget. Sedan, precis som jag diskuterade i artikeln om automatisera IE, för att skriva valfri VBA i Excel måste du gå in i designläge och visa koden. Om du aldrig har gjort det tidigare, behöver du bara gå till menyposten "Utvecklare" och klicka på Designläge. Klicka på knappen "Infoga", klicka på ActiveX-knappen och dra den på ditt ark någonstans. När du har gjort det klickar du på knappen och klickar sedan på "Visa kod".

selenium1

I kodredigeringsfönstret, längst ner till vänster, se till att du ändrar både "Namn" och "Bildtext" för att spegla vad knappen är till för. I det här fallet är knappen att öppna listan med webbadresser som du har listat i kalkylbladet. I mitt fall kallade jag det bara cmdLoadURLs och gjorde rubriken "Ladda URL: er" (det är detta som visas på knappen).

selenium1b

Därefter måste du aktivera Selenium Wrapper genom att klicka på Verktyg-menyn, klicka sedan på "Referenser" och sedan bläddra ner till referensen som heter "SeleniumWrapper Type Library". Markera den referensrutan och klicka sedan på OK.

selenium2

Nu är du redo att börja skriva automatiseringskod för webbläsare med Selenium Wrapper!

Seleniumomslagets funktionalitet

Selenium VBA Wrapper ger dig mycket mer funktionalitet än jag kan visa dig i den här artikeln. Du kan se hur mycket som är tillgängligt utöver bara WebDriver, genom att definiera Selenium-objektet som "New SeleniumWrapper". När du skriver perioden raderas alla element i objekttyper som du kan kontrollera, till exempel webbläsarbilder, PDF-filer, tangentbordsknappar och mer.

selenium3

Detta exempelkod använder WebDriver. När du använder Selenium WebDriver-objektet i din kod och skriver in perioden kommer det en mycket lång lista över metoder och egenskaper som du kan använda för att automatisera din webbläsare.

selenium4

Det kan ta lite tid att lära sig allt som är tillgängligt, men Google kan visa några bra exempel bakom de exemplar som finns tillgängliga på Google Code-sida. Tyvärr finns det, såvitt jag vet, ingen enkel guide där ute för att använda Selenium, men jag skulle vara tacksam för alla läsare som kan ge resurser!

Skriva din VBA-selenkod

I det här exemplet, som i IE-artikeln, har jag skapat en lista med webbadresser som jag vill öppna automatiskt i Firefox. Jag skapade sedan knappen som beskrivs i den första delen av denna artikel.

selenium5

Koden bakom knappen är enkel, men jag kommer att förklara vad varje avsnitt gör. Först måste du starta Firefox-applikationen. Metoden "selen.start" kommer att göra det. Metoderna setTimeout och setImplicitWait är inte kritiska, men kan förhindra att din applikation låses fast för alltid om webbläsaren inte svarar av någon anledning.

Dim selen Som New SeleniumWrapper. WebDriver. Dim FF som objekt. Dim intRowPosition som heltal. Dim-nycklar som nytt SeleniumWrapper.keys-selen. Starta "firefox", " https://www.google.com" selenium.setTimeout ("120000") selenium.setImplicitWait (5000) intRowPosition = 2. selen. Öppna ark1.Range ("A" & intRowPosition)

De sista par raderna ställer in raden för Excel-data att läsas (rad två, där den första URL: n lagras i kalkylark) och utför sedan metoden "selenium.open" för att läsa URL: n från det kalkylbladet och öppna det i Firefox.

selenium7

Nästa kodavsnitt ökar radpekaren och läser nästa URL i listan. Om cellen inte är tom använder den SendKeys-metoden för att starta en ny flik i Firefox, läser nästa URL från den säljaren och öppnar URL: en i den nya fliken.

intRowPosition = intRowPosition + 1 While Sheet1.Range ("A" & intRowPosition) <> vbNullString selen. SendKeys-nycklar. Kontroll & "t" selen. Öppna ark1.Range ("A" & intRowPosition) intRowPosition = intRowPosition + 1. Wend Set IE = Ingenting

Skriptet kommer att slinga genom hela listan tills alla webbadresser är öppna i sina egna flikar. Här är webbläsaren efter att loopen har gått igenom en andra gång och öppnat MUO i en ny flik.

selenium8

Om du vill använda den här koden för Chrome, behöver du bara ändra raden “selen. Starta "firefox" "till" chrome "istället.

Skapa nu ditt eget skript

Som jag nämnde ovan är det bästa sättet att lära sig kraften i Selenium Wrapper att skriva "selen" i din kod, tryck på perioden och bläddra bara i den mycket långa listan med tillgängliga egenskaper och metoder. Till exempel kan du använda egenskapen .URL för att få URL: en för den nu öppna fliken i Firefox eller Chrome.

selenium9

Som du kan se finns det många fler saker du kan göra som går långt utöver artikelns omfattning. Men experimentera och ha kul. Tack och lov kommer de flesta av funktionerna att hjälpa till med en popup-hjälptext som visar vilka parametrar varje funktion förväntar sig. Det kan hjälpa en hel del när det gäller att ta reda på hur man använder det.

För ditt nästa skriptprojekt, hur är det? skapa din egen enkla app med VBA Hur du kan skapa din egen enkla app med VBAVill du veta hur du gör din egen VBA-applikation för att lösa problem? Använd dessa tips för att bygga din egen VBA-programvara. Läs mer ?

Ryan har en kandidatexamen i elektroteknik. Han har arbetat 13 år inom automationsteknik, 5 år inom IT och är nu en applikationsingenjör. Han var tidigare chefredaktör för MakeUseOf och talade vid nationella konferenser om datavisualisering och har varit med på nationell TV och radio.