This is UltimateRPA Documentation
Internet Explorer

Ovládání Internet Exploreru

K obsluze programu Internet Explorer nástrojem UltimateRPA můžeme přistoupit stejně jako k jakékoliv jiné aplikaci. Pro snadnější ovládání lze využít rozšíření pro Internet Explorer, které reprezentuje třída AppExcel, která dědí metody třídy App.

Spuštění Internet Exploreru

Internet Explorer spustíme funkcí exec_ie_app z modulu urpa. Jako volitelný argument můžeme funkci předat řetězec obsahující URL. Internet Explorer se otevře a přejde na zvolenou URL. Pokud argument nezadáme, Internet Explorer se otevře na vámi nastavené domovské stránce.

import urpa
def main():
ie_app = urpa.exec_ie_app("https://playground.ultimaterpa.com/")
ie_app.set_auto_close(False)
IE_playground.png
Obrázek 1 Okno Internet Explorer s načtenou stránkou.

Pokud kód spustíme, otevře se nám jednoduchá webová stránka UltimateRPA Playground, kterou použijeme v dalších příkladech.

Ovládání webových stránek

Webové stránky ovládáme stejně jako ostatní aplikace. K sestavení výrazu použijeme nástroj Inspector. V aplikaci Inspector vytvoříme výraz app.find_first(cf.button().name("Continue")).send_mouse_click() pro aktivování tlačítka Continue na webu UltimateRPA Playground. V našem kódu však pro Internet Explorer používáme proměnou ie_app místo app. Můžeme tedy upravit nastavení přímo v nástroji Inspector, kde stiskneme tlačítko s ozubeným kolem a zaměníme app za ie_app, nebo doplníme prefix v kódu. Nezapomeňte v kódu nad funkcí main definovat konstantu pro Condition Factory.

import urpa
def main():
ie_app = urpa.exec_ie_app("https://playground.ultimaterpa.com/")
ie_app.find_first(cf.button().name("Continue")).send_mouse_click()
ie_app.set_auto_close(False)

Více podrobností o tom jak prvky aplikace ovládat se dočtete v kapitole Robot Interaction

Čekání na načtení stránky

Při práci s webovými aplikacemi se setkáváme s tím, že načítání stránek aplikace je pomalé a před provedením další akce je potřeba se ujistit, že se požadovaná stránka načetla kompletně. Taková situace je simulována na našem webu UltimateRPA Playground, v případě že vybereme přepínač Delayed a zmáčkneme tlačítko Continue. Načtení další stránky s nápisem Success pak trvá přibližně šest sekund. K vyzkoušení můžete použít následující kód.

import urpa
def main():
ie_app = urpa.exec_ie_app("https://playground.ultimaterpa.com/")
ie_app.find_first(cf.radio_button().name("Delayed")).send_mouse_click()
ie_app.find_first(cf.button().name("Continue")).send_mouse_click()
ie_app.find_first(cf.text().name("Success"))
ie_app.set_auto_close(False)

Pokud jste předchozí kód vyzkoušeli, přišli jste na to, že skončí chybou ElementNotFoundError, protože ve výchozím nastavení metoda find_first hledá nápis Success jen pět sekund a aplikaci trvá minimálně šest sekund, než se zobrazí stránka, na které nápis je. Mohli bychom tedy navýšit čas, který má robot na vyhledání nápisu Success. V tomto případě, ale využijeme metodu wait_for_complete, která kontroluje, jestli je stránka načtená kompletně. Má nepovinný argument timeout, který je nastavený na výchozí hodnotu 5000 ms.

import urpa
def main():
ie_app = urpa.exec_ie_app("https://playground.ultimaterpa.com/")
ie_app.wait_for_complete()
ie_app.find_first(cf.radio_button().name("Delayed")).send_mouse_click()
ie_app.find_first(cf.button().name("Continue")).send_mouse_click()
ie_app.wait_for_complete(10000)
ie_app.find_first(cf.text().name("Success"))
ie_app.set_auto_close(False)

Metoda wait_for_complete nemusí v případě použití některých technologii fungovat správně. Více informací najdete v dokumentaci.

Přechod na URL

K přechodu na jiné URL použijeme metodu navigate, jako parametr metodě předáme řetězec s URL, které chceme v Internet Exploreru otevřít. V ukázkovém příkladu spustíme Internet Explorer. Ten se otevře na vaší domovské stránce. Dvě sekundy počkáme a přesuneme se na web UltimateRPA Playground.

from time import sleep
import urpa
def main():
ie_app = urpa.exec_ie_app()
ie_app.wait_for_complete()
sleep(2)
ie_app.navigate("https://playground.ultimaterpa.com/")
ie_app.wait_for_complete()
ie_app.set_auto_close(False)