reklama
Klíčem k automatizaci je dělat věci rychleji a snadněji, než jste kdy dělali. Co ti tedy trvá dlouho? Kterou část vašeho pracovního vytížení chcete automatizovat?
Pokud jde o produktivitu, Excel je nejběžnějším nástrojem, který lidé používají pro věci, jako je organizování financí, řízení projektů, a upřednostňování cílů. Minulý týden jsem popsal, jak automatizovat IE nastavením skupin adres URL v listech aplikace Excel a poté pomocí objektu IE v systému Windows k automatizaci spouštění skupin adres URL přímo z aplikace Excel.
Po tomto článku se mnoho čtenářů zeptalo, jak udělat to samé v prohlížeči Firefox nebo Chrome. Vzhledem k tomu, že ani Firefox ani Chrome nemají ve Windows podobný objekt, který lze použít pro automatizaci VBA, vyžaduje provedení stejných akcí v těchto jiných prohlížečích další krok. Tímto krokem je instalace Selenium VBA - Windows COM wrapper pro Selenium.
Umožňuje provádět volání z libovolné aplikace, která podporuje VBA, za účelem otevření prohlížeče - nejen IE - a řízení této relace prohlížeče. Je to výkonný automatizační nástroj, který se běžně používá tak, že mnoho populárních dodavatelů prohlížečů používá Selen jako nativní součást svého prohlížeče. Jeho použití ve vašich automatizačních aplikacích bude jistě podporováno i v dalších letech.
Automatizace Firefox a Chrome pomocí Selenium
Než začnete s tímto projektem, budete si muset stáhnout a nainstalovat obal Selenium VBA. Pak, stejně jako jsem diskutoval v článku o automatizace IE, Chcete-li napsat jakýkoli VBA v Excelu, musíte se dostat do návrhového režimu a zobrazit kód. Pokud jste to ještě nikdy neudělali, stačí přejít do položky nabídky „Vývojář“ a kliknout na Režim návrhu. Klikněte na tlačítko „Vložit“, klikněte na tlačítko ActiveX a někam nakreslete na svůj list. Jakmile to uděláte, klikněte na tlačítko a poté klikněte na „Zobrazit kód“.
V okně editoru kódu vlevo dole nezapomeňte změnit „Název“ i „Titulek“ tak, aby odrážel, k čemu je tlačítko použito. V takovém případě bude tlačítko otevřít seznam adres URL, které jste uvedli v tabulce. V mém případě jsem to nazval cmdLoadURL a vytvořil jsem nadpis „Načíst URL“ (to je to, co se zobrazuje na tlačítku).
Dále je třeba aktivovat nástroj Selenium Wrapper kliknutím na nabídku Nástroje, poté na odkaz „Odkazy“ a poté přejděte dolů na odkaz nazvaný „Knihovna typů SeleniumWrapper“. Zaškrtněte toto referenční pole a klepněte na tlačítko OK.
Nyní jste připraveni začít psát kód automatizace prohlížeče pomocí Selenium Wrapper!
Funkčnost zábalu selenu
Balíček Selenium VBA Wrapper vám poskytuje mnohem více funkcí, než vám ukážu v tomto jednom článku. Můžete zjistit, kolik je k dispozici mimo WebDriver, definováním objektu Selenium jako „New SeleniumWrapper“. Když zadáte období, rozbalí se všechny prvky typů objektů, které můžete ovládat, jako jsou obrázky prohlížeče, soubory PDF, klávesy klávesnice a další.
Tento ukázkový kód bude používat WebDriver. Jakmile ve svém kódu použijete objekt Selenium WebDriver a zadáte období, rozbalí se velmi dlouhý seznam metod a vlastností, které můžete použít k automatizaci webového prohlížeče.
Naučit se vše, co je k dispozici, může nějakou dobu trvat, ale Google může ukázat několik dobrých příkladů za ukázkami dostupnými na webu Google Code page. Bohužel, pokud vím, neexistuje žádný přímý průvodce, jak používat Selenium, ale byl bych vděčný všem čtenářům, kteří by mohli poskytnout jakékoli zdroje!
Zápis seleniového kódu VBA
V tomto příkladu, stejně jako v článku IE, jsem vytvořil seznam adres URL, které chci automaticky otevřít v prohlížeči Firefox. Poté jsem vytvořil tlačítko, jak je popsáno v první části tohoto článku.
Kód za tlačítkem je přímý, ale vysvětlím, co každá sekce dělá. Nejprve musíte spustit aplikaci Firefox. To provede metoda „selenium.start“. Metody setTimeout a setImplicitWait nejsou kritické, ale mohou zabránit aplikaci zamknout navždy, pokud prohlížeč z nějakého důvodu neodpovídá.
Dim selenium jako nový SeleniumWrapper. WebDriver. Dim FF jako objekt. Dim intRowPosition As Integer. Dim tlačítka jako nový seleniumWrapper.keys selen. Spusťte "firefox", " https://www.google.com" selenium.setTimeout ("120000") selenium.setImplicitWait (5000) intRowPosition = 2. selen. Otevřete Sheet1.Range („A“ a intRowPosition)
Posledních pár řádků nastaví, aby se čtela data Excelu (řádek dva, kde je v URL uložena první URL) tabulku) a poté provede metodu „selenium.open“, aby přečetla adresu URL z této tabulky a otevře ji v Firefox.
Další část kódu zvyšuje ukazatel řádku a přečte další adresu URL v seznamu. Pokud buňka není prázdná, použije metodu SendKeys ke spuštění nové karty v prohlížeči Firefox, načte další adresu URL z tohoto prodeje a otevře adresu URL na této nové kartě.
intRowPosition = intRowPosition + 1 zatímco Sheet1.Range ("A" & intRowPosition) <> vbNullString selen. Klávesy SendKeys. Kontrolní & "t" selen. Otevřete Sheet1.Range ("A" & intRowPosition) intRowPosition = intRowPosition + 1. Wend Set IE = Nic
Skript bude procházet celým seznamem, dokud nebudou všechny adresy URL otevřené na jejich vlastních kartách. Zde je prohlížeč poté, co smyčka prošla podruhé a otevře MUO na nové kartě.
Pokud chcete tento kód použít pro Chrome, stačí změnit řádek selen. Místo toho spusťte „firefox“ “na„ chrome “.
Nyní vytvořte svůj vlastní skript
Jak jsem již zmínil výše, nejlepším způsobem, jak se naučit sílu balíku Selenium, je napsat „selen“ ve vašem kódu, zasáhnout období a jen procházet velmi dlouhý seznam dostupných vlastností a metody. Například můžete pomocí vlastnosti .URL získat adresu URL aktuálně otevřené karty v prohlížeči Firefox nebo Chrome.
Jak vidíte, existuje mnoho dalších věcí, které můžete udělat, které jdou nad rámec tohoto článku. Ale experimentujte a bavte se. Naštěstí většina funkcí zobrazí vyskakovací text nápovědy, který vám ukáže, jaké parametry každá funkce očekává. To může hodně pomoci, když přijde na to, jak ji používat.
Pro vás další skriptovací projekt, co takhle vytvoření vlastní jednoduché aplikace s VBA Jak si můžete vytvořit vlastní jednoduchou aplikaci s VBAChcete vědět, jak vytvořit vlastní aplikaci VBA pro řešení problémů? Tyto tipy použijte k vytvoření vlastního softwaru VBA. Přečtěte si více ?
Ryan má bakalářský titul z elektrotechniky. Pracoval 13 let v automatizační technice, 5 let v IT a nyní je Apps Engineer. Bývalý šéfredaktor MakeUseOf, vystoupil na národních konferencích o vizualizaci dat a vystupoval v národních televizích a rádiích.