Annonse
Nøkkelen til automatisering er å gjøre ting raskere og enklere enn du noen gang har gjort før. Så hva tar deg lang tid å gjøre? Hvilken del av arbeidsmengden din ønsker å automatisere?
Når det gjelder produktivitet, er Excel det vanligste verktøyet som folk bruker til ting som å organisere økonomi, administrere prosjekter, og prioritere mål. Forrige uke beskrev jeg hvordan jeg skulle gjøre det automatisere IE ved å sette opp grupper med nettadresser i Excel-ark, og deretter bruke IE-objektet i Windows til å automatisere lanseringsgrupper av nettadresser rett fra Excel.
Etter denne artikkelen spurte mange lesere hvordan de kunne gjøre det samme i Firefox eller Chrome. Siden verken Firefox eller Chrome har et lignende objekt inkludert i Windows som kan brukes til VBA-automatisering, krever det å utføre den samme handlingen på de andre nettleserne. Det trinnet er installasjonen av Selen VBA - en Windows COM-innpakning for Selenium.
Den lar deg utføre samtaler fra alle applikasjoner som støtter VBA for å åpne en nettleser - ikke bare IE - og kontrollere nettleserøkten. Det er et kraftig automatiseringsverktøy som er så ofte brukt at mange populære nettleser leverandører inkluderer Selenium som en naturlig del av nettleseren. Å bruke den i automatiseringsapplikasjonene dine blir garantert støttet i mange år fremover.
Automatisere Firefox og Chrome med Selenium
Før du kommer i gang med dette prosjektet, må du laste ned og installere Selenium VBA-innpakningen. Deretter, akkurat som jeg diskuterte i artikkelen om automatisere IE, for å skrive hvilken som helst VBA i Excel, må du komme i designmodus og se koden. Hvis du aldri har gjort dette før, trenger du bare å gå inn på "Developer" -menyelementet og klikke på Design Mode. Klikk på "Sett inn" -knappen, klikk på ActiveX-knappen og tegne den på arket ditt et sted. Når du har gjort det, klikk på knappen og klikk deretter på "Vis kode".
Sørg for å endre både "Navn" og "Bildetekst" for å gjenspeile hva knappen er til for i kodedigeringsvinduet nederst til venstre. I dette tilfellet vil knappen være for å åpne listen over nettadresser som du har oppført i regnearket. I mitt tilfelle kalte jeg det bare cmdLoadURLs, og laget overskriften “Last inn URLer” (det er dette som vises på knappen).
Deretter må du aktivere Selenium Wrapper ved å klikke på Verktøy-menyen, deretter klikke på "Referanser" og bla deg ned til referansen som heter "SeleniumWrapper Type Library". Merk av for referansefeltet, og klikk deretter OK.
Du er nå klar til å begynne å skrive automatiseringskode for nettlesere ved hjelp av Selenium Wrapper!
Seleniumfolderens funksjonalitet
Selenium VBA Wrapper gir deg mye mer funksjonalitet enn jeg kan vise deg i denne ene artikkelen. Du kan se hvor mye som er tilgjengelig utover bare WebDriver, ved å definere Selenium-objektet som "New SeleniumWrapper". Når du skriver perioden, vil den slippe ned alle elementene i typen objekter du kan kontrollere, for eksempel nettleserbilder, PDF-filer, tastaturtaster og mer.
Dette eksempelskoden bruker WebDriver. Når du bruker Selenium WebDriver-objektet i koden din og skriver inn perioden, slipper det en veldig lang liste over metoder og egenskaper du kan bruke til å automatisere nettleseren din.
Det kan ta litt tid å lære alt som er tilgjengelig, men Google kan finne noen gode eksempler bak eksemplene tilgjengelig på Google Code-siden. Dessverre finnes det så vidt jeg vet ingen enkel guide der ute for bruk av Selenium, men jeg vil være takknemlig for alle lesere som kan gi ressurser!
Skrive din VBA Selenium-kode
I dette eksemplet har jeg, som i IE-artikkelen, laget en liste over nettadresser som jeg vil åpne i Firefox automatisk. Jeg opprettet deretter knappen som beskrevet i første del av denne artikkelen.
Koden bak knappen er grei, men jeg skal forklare hva hver seksjon gjør. Først må du starte Firefox-applikasjonen. Metoden “selen.start” vil gjøre det. SetTimeout- og setImplicitWait-metodene er ikke kritiske, men kan forhindre at applikasjonen din låser seg for alltid hvis nettleseren ikke reagerer av en eller annen grunn.
Dim selen Som New SeleniumWrapper. WebDriver. Dim FF som objekt. Demp intRowPosition som heltall. Dempede taster Som nytt SeleniumWrapper.keys selen. Start "firefox", " https://www.google.com" selenium.setTimeout ("120000") selenium.setImplicitWait (5000) intRowPosition = 2. selen. Åpne ark1.Range ("A" & intRowPosition)
De siste par linjene angir raden med Excel-dataene som skal leses (rad to, der den første URLen er lagret i (regneark), og utfører deretter "selenium.open" -metoden for å lese URLen fra det regnearket, og åpne den i Firefox.
Den neste delen av koden øker radpekeren og leser den neste URL-en i listen. Hvis cellen ikke er tom, bruker den SendKeys-metoden for å starte en ny fane i Firefox, leser den neste URL-en fra det selgte og åpner URL-adressen i den nye fanen.
intRowPosition = intRowPosition + 1 While Sheet1.Range ("A" & intRowPosition) <> vbNullString selen. SendKeys nøkler. Kontroll & "t" selen. Åpne ark1.Range ("A" & intRowPosition) intRowPosition = intRowPosition + 1. Wend Set IE = Ingenting
Skriptet vil gå gjennom hele listen til alle nettadresser er åpne i sine egne faner. Her er nettleseren etter at loopen gikk gjennom en gang og åpnet MUO i en ny fane.
Hvis du vil bruke denne koden for Chrome, er alt du trenger å gjøre å endre linjen “selen. Start "firefox" "til" chrome "i stedet.
Nå kan du lage ditt eget skript
Som jeg nevnte ovenfor, er den beste måten å lære kraften til Selenium Wrapper å skrive "selen" i koden din, treff perioden og bla bare gjennom den veldig lange listen over tilgjengelige egenskaper og metoder. Du kan for eksempel bruke .URL-egenskapen til å få URL-en til den for øyeblikket åpne fanen i Firefox eller Chrome.
Som du kan se, det er mange flere ting du kan gjøre som går langt utenfor omfanget av denne artikkelen. Men eksperimentere og ha det gøy. Heldigvis vil de fleste av funksjonene dukke opp hjelpetekst som viser hvilke parametere hver funksjon forventer. Det kan hjelpe mye når det gjelder å finne ut hvordan du bruker den.
For ditt neste skriptprosjekt, hva med lage din egen enkle app med VBA Hvordan du kan lage din egen enkle app med VBAVil du vite hvordan du lager din egen VBA-applikasjon for å løse problemer? Bruk disse tipsene til å lage din egen VBA-programvare. Les mer ?
Ryan har en BSc-grad i elektroteknikk. Han har jobbet 13 år innen automatisering, 5 år innen IT, og er nå en applikasjonsingeniør. Han var tidligere administrerende redaktør for MakeUseOf, han snakket på nasjonale konferanser om datavisualisering og har blitt omtalt på nasjonal TV og radio.