This is UltimateRPA Documentation
První robotizace

První skript s UltimateRPA

Robot ovládá aplikace stejně jako uživatel. Příkazy pro robota se zapisují v programovacím jazyce Python verze 3.7 (do verze 4.5 se jednalo o Python 2.7). Tento návod předpokládá alespoň základní znalost tohoto jazyka.

Ukážeme si, jak vytvořit první robotizační skript v UltimateRPA. V adresáři, do kterého jste rozbalili nástroj UltimateRPA spustíme PyScripter.exe. Otevře se nám vývojářské prostředí PyScripter, ve kterém si vytvoříme nový soubor. V menu File si vybereme New a potom New Python module nebo použijeme klávesovou zkratku (CTRL + N) a soubor si uložíme jako start.py (CTRL + S).

Import UltimateRPA

Jako první si přidáme do skriptu modul UltimateRPA příkazem import, který nám umožní používat robota.

import urpa

Funkce main a spuštění aplikace

Definujeme funkci s názvem main. Tato funkce je velmi důležitá a musí jí obsahovat každý skript, který chceme robotem spustit. Uvnitř funkce si zavoláme funkci exec_app z modulu urpa, která spouští aplikaci. Parametrem funkce exec_app je řetězec s cestou k aplikaci, kterou chceme spustit. Cesta může být absolutní nebo relativní vůči skriptu. My pro náš první skript použijeme aplikaci RpaStartTest.

import urpa
def main():
urpa.exec_app("TutorialApps/RpaStartTest.exe")

Cesta k aplikaci "TutorialApps/RpaStartTest.exe" je relativní od umístění spouštěného skriptu a předpokládá, že skript je uložený v hlavní složce s nástroji UltimateRPA. Pokud je váš skript uložený jinde, nezapomeňte cestu upravit.

Teď skript pomocí robota spustíme. V horním menu PyScripteru vybereme Run a dále External Run nebo je možné použít klávesovou zkratku (ALT + F9).

FirstRobotization_RpaStartTest_blink.gif
Obrázek 1 Bliknutí aplikace RpaStartTest

Jak jste mohli vidět, aplikace se spustí, ale vzápětí se ukončí. K tomu došlo proto, že výchozí nastavení říká robotu, aby po dokončení skriptu ukončil všechny aplikace, které spustil. Toto chování můžeme upravit metodu set_auto_close na objekt app s parametrem False, která zakáže robotu aplikaci po ukončení skriptu vypnout. Objekt app získáme tak, že si hodnotu vrácenou funkcí exec_app uložíme do proměnné app.

import urpa
def main():
app = urpa.exec_app("TutorialApps/RpaStartTest.exe")
app.set_auto_close(False)

Když teď skript spustíme (ALT + F9), tak aplikace zůstane spuštěná i po doběhnutí skriptu a my si jí můžeme prohlédnout.

RpaStartTest.png
Obrázek 2 Aplikace RpaStartTest

Aplikace je velmi jednoduchá. Obsahuje pouze jeden prvek, který stojí za povšimnutí, a to tlačítko Start, které si v dalších krocích pomocí robota aktivujeme. V PyScriptu můžeme mít spuštěný jen jeden proces, z toho důvodu musíme aplikaci uživatelsky ukončit před tím, než budeme moc spustit další.

Nalezení tlačítka Start

Proto, abychom mohli s objektem provádět akce, ho musíme nejdříve identifikovat a najít. Jak můžeme objekty identifikovat si podrobněji vysvětlíme v kapitole Inspector zatím nám stačí vědět, že naše tlačítko můžeme identifikovat pomocí řetězce "Start". Na app tedy zavoláme metodu find_first s atributem "Start", která nám vrátí objekt tlačítka Start, se kterým můžeme provádět uživatelské interakce.

import urpa
def main():
app = urpa.exec_app("TutorialApps/RpaStartTest.exe")
app.set_auto_close(False)
app.find_first("Start")

Pokud teď skript spustíme, nedojde na první pohled k žádné změně. Robot sice najde element s názvem Start, ale my to z běhu robota nijak nepoznáme.

Spuštění skriptu v debug modu

Robota můžeme spustit v takzvaném debuggovacím režimu. Tento mód se používá při vývoji a ladění skriptu. Tento mód nám při přehrávání skriptu vždy označí zeleným rámečkem nalezený objekt. Nastavíme tedy funkci set_debug_mode z modulu urpa na hodnotu True. Toto volání umístíme do kódu ještě před vyhledáváním metodou find_first. Všechny akce, prováděné pod tímto řádkem, už budou probíhat v debuggovacím režimu.

import urpa
def main():
app = urpa.exec_app("TutorialApps/RpaStartTest.exe")
app.set_auto_close(False)
app.find_first("Start")

Spustíme robota a kolem tlačítka Start se nám vykreslí zelený rámeček. To znamená, že jsme našli to, co jsme hledali a můžeme přejít ke kliknutí.

FirstRobotization_RpaStartTest_debug_mode.gif
Obrázek 3 Debuggovací režim

Debuggovací režim také vloží mezi každý krok robota krátkou pauzu, abychom stihli registrovat, co se v aplikaci děje.

Kliknutí myší na tlačítko Start

Kliknutí na tlačítko už je snadné. Na vyhledaný prvek zavoláme metodu send_mouse_click, která se postará, aby se kurzor přemístil nad střed objektu a provedlo se kliknutí.

import urpa
def main():
app = urpa.exec_app("TutorialApps/RpaStartTest.exe")
app.set_auto_close(False)
app.find_first("Start").send_mouse_click()

Opět skript spustíme. Robot najde tlačítko Start a klikne na něj. To nám v aplikaci zpřístupní dvě textové pole.

FirstRobotization_RpaStartTest_mouse_click.gif
Obrázek 4 Stisknutí tlačítka Start

Vyplnění textového pole

Teď si vyplníme do textového pole obsahující znak @ řetězec "UltimateRPA". Stejně jako když jsme prováděli akci kliknutí s tlačítkem Start, musíme nejdříve textové pole v aplikaci najít. Různé způsoby hledání elementu si projdeme v samostatné kapitole. Pro tuto chvíli se spokojíme s metodou find_first, kterou už jsme použili při hledání tlačítka Start. Potom co objekt najdeme, můžeme na něj použít metodu send_text, které jako argument předáme řetězec "UltimateRPA". Ta řetězec vyplní do textového pole.

import urpa
def main():
app = urpa.exec_app("TutorialApps/RpaStartTest.exe")
app.set_auto_close(False)
app.find_first("Start").send_mouse_click()
app.find_first("@").send_text("UltimateRPA")

Spustíme robota a vidíme, že se nám text do pole vyplnil, ale zůstal nám v něm znak @, kterého bychom se chtěli zbavit.

FirstRobotization_RpaStartTest_send_text.gif
Obrázek 5 Vyplnění textu

Stisknutí tlačítka Delete

Robot se zbaví znaku stejně jako běžný uživatel a to stisknutím klávesy Delete. Nejdříve vyhledaný objekt textového pole uložíme do proměnné editbox. Pak na dalším řádku použijeme na editbox metodu send_key, kterou zavoláme s argumentem "DEL". Ta obstará stisknutí klávesy Delete, následně na editbox použijeme metodu send_text s řetezcem "UltimateRPA".

import urpa
def main():
app = urpa.exec_app("TutorialApps/RpaStartTest.exe")
app.set_auto_close(False)
app.find_first("Start").send_mouse_click()
editbox = app.find_first("@")
editbox.send_key("DEL")
editbox.send_text("UltimateRPA")
FirstRobotization_RpaStartTest_send_key.gif
Obrázek 6 Stisknutí klavesy DEL

To byla ukázka základního použití robota UltimateRPA, v dalších kapitolách si to probereme trochu podrobněji.