Hur man automatiserar Firefox eller Chrome med Excel VBA och Selen

Nyckeln till automatisering gör saker snabbare och enklare än vad du någonsin gjort tidigare. Så vilken del av din arbetsbelastning vill du automatisera? Låt oss se vad vi kan göra!

Nyckeln till automatisering gör saker snabbare och enklare än vad du någonsin gjort tidigare.  Så vilken del av din arbetsbelastning vill du automatisera?  Låt oss se vad vi kan göra!
Annons

Nyckeln till automatisering gör saker snabbare och enklare än vad du någonsin gjort tidigare. Så vad tar du 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 ekonomier, hantera projekt 10 + Användbara Excel-mallar för projektledning och spårning 10 + Användbara Excel-mallar för projektledning och spårning Mallar är att projektledare vilka knivar är till professionella kockar: oumbärlig. Vi visar dig hur du kan replikera framgångsrika projekt genom att använda färdiga mallar i Microsoft Excel och därefter. Läs mer och prioritera mål Använd Excel och Google-uppgifter för att skapa det bästa målhanteringsverktyget någonsin Använd Excel och Google-uppgifter för att skapa det bästa målverktyget någonsin Senast har jag börjat inse att jag jobbar väldigt hårt, men om någon frågade mig om jag känner att jag jobbar mot ett större syfte, skulle jag behöva säga att jag verkligen inte ... Läs mer. I förra veckan beskrev jag hur man automatiserar IE Använda VBA för att automatisera Internet Explorer-sessioner från ett Excel-kalkylblad med hjälp av VBA för att automatisera Internet Explorer-sessioner från ett Excel-kalkylblad. Integration med Windows möjliggör kontroll över Internet Explorer på ett antal överraskande sätt med Visual Basic för Applikationer (VBA) -skript från alla program som stöder det, till exempel Word, Outlook eller Excel. Läs mer genom att konfigurera grupper av webbadresser i Excel-ark, och sedan använda IE-objektet i Windows för att automatisera starta grupper av webbadresser rakt inifrån Excel.

Efter den artikeln 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-automation, krävs det ett extra steg för att utföra samma slags åtgärder på de andra webbläsarna. Det här steget är installationen av Selen VBA - ett Windows COM-omslag för Selen.

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 här webbläsarsessionen. Det är ett kraftfullt automatiseringsverktyg som används så vanligt att många populära webbläsare innehåller Selen som en inbyggd del av webbläsaren. Att använda det i dina automationsapplikationer är säkert att stödjas under de kommande åren.

Automatiserar Firefox och Chrome med Selen

Innan du börjar med det här projektet måste du ladda ner och installera Selenium VBA wrapper. Sedan, precis som jag diskuterade i artikeln om att automatisera IE Använda VBA för att automatisera Internet Explorer-sessioner från ett Excel-kalkylblad med hjälp av VBA för att automatisera Internet Explorer-sessioner från ett Excel-kalkylblad. Integration med Windows tillåter kontroll över Internet Explorer på ett antal överraskande sätt med hjälp av Visual Basic for Applications (VBA) skript från alla program som stöder det, till exempel Word, Outlook eller Excel. Läs mer, för att skriva några VBA i Excel måste du komma in i designläge och visa koden. Om du aldrig har gjort det tidigare måste du bara gå in i menyalternativet "Utvecklare" och klicka på Design Mode. Klicka på "Infoga" -knappen, klicka på ActiveX-knappen och dra den på ditt ark någonstans. När du har gjort det, klicka på knappen och klicka sedan på "Visa kod".

selenium1

I kodredigeringsfönstret, längst ned till vänster, se till att du ändrar både "Namn" och "Bildtext" för att avspegla vad knappen är för. I det här fallet kommer knappen att öppna listan över webbadresser som du har listat i kalkylbladet. I mitt fall kallade jag det bara cmdLoadURLs och gjorde rubriken "Ladda webbadresser" (det här visar vad som står 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 kallad "SeleniumWrapper Type Library". Markera den här rutan och klicka sedan på OK.

selenium2

Du är nu redo att börja skriva webbläsarens automatiseringskod med hjälp av Selen Wrapper!

Funktionaliteten hos Selen Wrapper

Selen VBA Wrapper ger dig mycket mer funktionalitet än jag kan visa dig i den här artikeln. Du kan se hur mycket som finns tillgänglig utöver bara WebDriver, genom att definiera Selenobjektet som "New SeleniumWrapper". När du skriver in perioden kommer den att släppa ner alla element i de typer av objekt som du kan styra, som webbläsarbilder, PDF-filer, tangentbordstangenter och mer.

selenium3

Denna exempelkod kommer att använda WebDriver. När du har använt Selenium WebDriver-objektet i din kod och skriver in perioden, kommer det att släppa ner 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 tillgängliga proverna på Google Kod-sidan. Tyvärr, så långt jag vet, finns det ingen enkel guide där ute för att använda Selen, men jag skulle vara tacksam för alla läsare som kunde ge några resurser!

Skriva din VBA-selenkod

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

selenium5

Koden bakom knappen är okomplicerad, men jag ska förklara vad varje avsnitt gör. Först måste du starta Firefox-applikationen. Metoden "selen.start" kommer att göra det. SetTimeout och setImplicitWait metoderna är inte kritiska, men kan förhindra att din applikation låser upp 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 Integer Dim-nycklar Som New SeleniumWrapper.keys Selen.Start "Firefox", "http://www.google.com" selenium.setTimeout ("120000") selen. setImplicitWait (5000) intRowPosition = 2 selen.Open Sheet1.Range ("A" & intRowPosition) 

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

selenium7

Nästa avsnitt av kod ökar radpekaren och läser nästa URL i listan. Om cellen inte är blank använder den sedan SendKeys-metoden för att starta en ny flik i Firefox, läser nästa URL från den sälja och öppnar URL-adressen i den nya fliken.

 intRowPosition = intRowPosition + 1 Med Sheet1.Range ("A" & intRowPosition) vbNullString selenium.SendKeys keys.Control & "t" selen.Open Sheet1.Range ("A" & intRowPosition) intRowPosition = intRowPosition + 1 Wend Set IE = Ingenting 

Skriptet går igenom hela listan tills alla webbadresser är öppna i sina egna flikar. Här är webbläsaren efter att slingan gick igenom en andra gång och öppnade MUO i en ny flik.

selenium8

Om du vill använda den här koden för Chrome, behöver du bara ändra raden "selenium.Start" 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 Selen Wrapper att skriva "selen" i din kod, slå in perioden och bara bläddra längs den mycket långa listan över tillgängliga egenskaper och metoder. Till exempel kan du använda egenskapen .URL för att få URL-adressen till fliken för närvarande öppen i Firefox eller Chrome.

selenium9

Som du kan se finns det många fler saker du kan göra som går långt bortom omfattningen av denna artikel. Men experimentera och ha det roligt. Lyckligtvis kommer de flesta funktionerna 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 räkna ut hur man använder den.

Användar du VBA för att automatisera din dator? Har du någonsin automatiserat dina webbläsarsessioner från VBA? Dela dina egna tips och erfarenheter med det i kommentarfältet nedan!

In this article