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å 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-projekthanteringsmallar för spårning 10 Användbara Excel-projekthanteringsmallar för spårning Projekthanteringsmallar kan hjälpa dig att replikera framgångsrika projekt. Här är de grundläggande Microsoft Excel-mallarna för dig. 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 “Utvecklare” menyalternativ och klicka på Design Mode. Klicka på “Föra in” 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”.
I kodredigeringsfönstret, längst ner till vänster, se till att du ändrar både “namn” och den “Rubrik” 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 bildtexten “Ladda webbadresser” (det här visar vad som står på knappen).
Därefter måste du aktivera Selenium Wrapper genom att klicka på Verktyg-menyn och sedan klicka på “referenser”, och sedan bläddra ner till referensen som heter “SeleniumWrapper Typ Bibliotek”. Markera den här rutan och klicka sedan på OK.
Du är nu redo att börja skriva webbläsarens automatiseringskod med hjälp av Selenium 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 “Ny SeleniumWrapper”. När du skriver in perioden kommer den att släppa ner alla element i de typer av objekt som du kan styra, till exempel webbläsarbilder, PDF-filer, tangentbordstangenter och mer.
Denna exempelkod kommer att använda WebDriver. När du använder 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.
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 skulle kunna tillhandahålla 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.
Koden bakom knappen är okomplicerad, men jag ska förklara vad varje avsnitt gör. Först måste du starta Firefox-applikationen. De “selenium.start” metod 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 är lagrad i kalkylbladet) och utför sedan “selenium.open” Metod för att läsa URL-adressen från det kalkylbladet och öppna det i Firefox.
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 webbadress 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 = Inget
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.
Om du vill använda den här koden för Chrome är allt du behöver göra att ändra linjen “selenium.Start “firefox”” till “krom” 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 klickar du på perioden och bläddrar bara 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.
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!
Utforska mer om: Google Chrome, Microsoft Excel, Mozilla Firefox, Visual Basic Programmering.