Microsoft UI Automation - Microsoft UI Automation

Microsoft Automatizace uživatelského rozhraní (UIA) je aplikační programovací rozhraní (API), který umožňuje přístup, identifikaci a manipulaci s prvky uživatelského rozhraní (UI) jiné aplikace.[1][2]

UIA je zaměřena na poskytování Přístupnost uživatelského rozhraní a je jeho nástupcem Microsoft Active Accessibility. Také to usnadňuje Automatizace testu GUI, a to je motor, na kterém mnoho automatizace testů nástroje jsou založeny. RPA nástroje jej také používají k automatizaci aplikací ve Windows podnikové procesy.

Poskytovatelé nemovitostí UIA podporují obojí Win32 a .SÍŤ programy.

Nejnovější specifikace UIA je součástí automatizace Microsoft UI Specifikace příslibu komunity. Společnost Microsoft tvrdí, že přenositelnost na jiné platformy než Microsoft Windows byla jedním z jejích designových cílů. Od té doby byl přenesen do Mono.[3]

Dějiny

V roce 2005 společnost Microsoft vydala UIA jako nástupce MSAA rámec.

Podařilo se UI Automation API bylo vydáno jako součást .NET Framework 3.0 Nativní API pro automatizaci uživatelského rozhraní (poskytovatel) je zahrnuto jako součást Windows Vista a Windows Server 2008 SDK a je také distribuován s .NET Framework.

UIA je ve Windows 7 k dispozici ihned po vybalení jako součást Windows Automation API 3.0 a jako samostatné stažení pro Windows XP, Windows Vista a Windows Server 2003 a 2008.[4]

Motivace a cíle

Jako nástupce MSAA usiluje UIA o řešení následujících cílů:

  • Umožněte efektivní výkon klienta, aniž byste museli klienty nutit zapojit se do procesu cílové aplikace.
  • Vystavte více informací o uživatelském rozhraní.
  • Společně existují a používají MSAA, ale nedědí problémy, které existují v MSAA.
  • Poskytněte alternativu k MSAA, kterou lze snadno implementovat.

Technický přehled

Rám

Na straně klienta poskytuje UIA rozhraní .NET v UIAutomationClient.dll montáž a KOM rozhraní implementované přímo v UIAutomationCore.dll.

Na straně serveru UIAutomationCore.dll je injekčně do všech nebo vybraných procesů na aktuální ploše za účelem načtení dat jménem klienta. DLL může také načíst UIA pluginy (tzv poskytovatelé) do svého hostitelského procesu k extrakci dat pomocí různých technik.

UIA má čtyři hlavní komponenty poskytovatele a klienta, jak ukazuje následující tabulka.

SoučástkaPopis
UIAutomationCore (UIAutomationCore.dll a závislé osoby)Základní kód (někdy nazývaný jádro UIA), který zpracovává komunikaci mezi poskytovateli a klienty. UI Automation Core také nabízí rozhraní API poskytovatele a klienta pro nespravované aplikace a klienty; nespravované aplikace (klienti nebo poskytovatelé) nevyžadují níže uvedená spravovaná sestavení.
Managed Provider API (UIAutomationProvider.dll a závislé osoby)

Sada rozhraní definice a funkce, které jsou implementovány spravovanými aplikacemi poskytovatele UIA. Poskytovatelé jsou objekty, které poskytují informace o prvcích uživatelského rozhraní a reagují na programový vstup.

Managed Client API (UIAutomationClient.dll a závislé osoby)Sada definic rozhraní a funkcí pro spravované klientské aplikace UIA.
UIAutomationClientsideProviders.dllSada implementací poskytovatele UIA pro starší ovládací prvky Win32 a aplikace MSAA. Tento poskytovatel na straně klienta je ve výchozím nastavení k dispozici pro spravované klientské aplikace.

Elementy

UIA vystavuje každou část uživatelského rozhraní klientským aplikacím jako automatizační prvek. Prvky jsou obsaženy ve stromové struktuře, přičemž jako kořenový prvek je použita plocha.

Objekty automatizačních prvků vystavují společné vlastnosti prvků uživatelského rozhraní, které představují. Jednou z těchto vlastností je typ ovládacího prvku, který definuje jeho základní vzhled a funkčnost jako jednu rozpoznatelnou entitu (např. Tlačítko nebo zaškrtávací políčko).

Kromě toho prvky vystavují vzory ovládacích prvků, které poskytují vlastnosti specifické pro jejich typy ovládacích prvků. Řídicí vzory také vystavují metody, které klientům umožňují získat další informace o prvku a poskytnout vstup.

Klienti mohou filtrovat surové zobrazení stromu jako zobrazení ovládacího prvku nebo zobrazení obsahu. Aplikace mohou také vytvářet vlastní zobrazení.

Strom

Ve stromu UIA je kořenový prvek, který představuje aktuální plochu a jehož podřízené prvky představují okna aplikace. Každý z těchto podřízených prvků může obsahovat prvky představující části uživatelského rozhraní, jako jsou nabídky, tlačítka, panely nástrojů a seznamy. Tyto prvky zase mohou obsahovat další prvky, například položky seznamu.

Strom UIA není pevnou strukturou a je zřídka viděn jako celek, protože může obsahovat tisíce prvků. Části stromu jsou vytvářeny podle potřeby a strom může procházet změnami při přidávání, přesouvání nebo odebírání prvků.

Typy ovládání

Typy ovládacích prvků UIA jsou dobře známé identifikátory, které lze použít k označení, jaký druh ovládacího prvku konkrétní prvek představuje, například pole se seznamem nebo tlačítko.

Známý identifikátor umožňuje zařízením s asistenční technologií (AT) snadněji určit, jaké typy ovládacích prvků jsou k dispozici v uživatelském rozhraní (UI) a jak s ovládacími prvky pracovat. Lidsky čitelná reprezentace informací o typu ovládacího prvku UIA je k dispozici jako LocalizedControlType vlastnost, kterou lze přizpůsobit vývojářem ovládacích prvků nebo aplikací.

Kontrolní vzory

Vzory ovládacích prvků poskytují způsob kategorizace a vystavení funkcí ovládacího prvku nezávislých na typu ovládacího prvku nebo vzhledu ovládacího prvku.

UIA používá kontrolní vzory k reprezentaci běžných kontrolních chování. Například Vyvolat ovládací prvek se používá pro ovládací prvky, které lze vyvolat (například tlačítka) a Svitek kontrolní vzorek se používá pro ovládací prvky, které jsou rolovatelné výřezy (například seznamy, zobrazení seznamu nebo pole se seznamem). Protože každý vzor ovládacího prvku představuje samostatnou funkčnost, lze je kombinovat a popsat celou sadu funkcí podporovaných konkrétním ovládacím prvkem.

Vlastnosti

Poskytovatelé UIA vystavují vlastnosti prvků UIA a vzorů ovládacích prvků. Tyto vlastnosti umožňují klientským aplikacím UIA zjistit informace o částech uživatelského rozhraní (UI), zejména ovládacích prvcích, včetně statických i dynamických dat.

Události

Oznámení o události UIA je klíčovou funkcí pro pomocné technologie (AT), jako jsou čtečky obrazovky a lupy obrazovky. Tito klienti UIA sledují události vyvolané poskytovateli UIA, ke kterým dochází v rámci UIA, a pomocí těchto informací upozorňují koncové uživatele.

Účinnost je vylepšena tím, že aplikacím poskytovatele umožňuje vyvolávat události selektivně, v závislosti na tom, zda jsou klienti odběrateli těchto událostí, nebo vůbec, pokud žádný klient neposlouchá žádné události.

Textový vzor

UIA zpřístupňuje textový obsah textových ovládacích prvků na platformách podporovaných UIA, včetně atributů formátu a stylu. Mezi tyto ovládací prvky patří mimo jiné Microsoft .NET Framework Textové pole a RichTextBox stejně jako jejich ekvivalenty Win32.

Vystavení textového obsahu ovládacího prvku se provádí pomocí Textový vzor kontrolní vzor, ​​který představuje obsah textového kontejneru jako textový proud. Zase Textový vzor vyžaduje podporu TextPatternRange třídy vystavit atributy formátu a stylu. TextPatternRange podporuje Textový vzor reprezentací souvislého rozpětí textu v textovém kontejneru s Start a Konec koncové body. Vícenásobné nebo nesouvislé rozpětí textu může být reprezentováno více než jedním TextPatternRange předměty. TextPatternRange podporuje funkce jako klon, výběr, porovnání, načítání a procházení.

Automatizace uživatelského rozhraní pro automatické testování

UIA může být také užitečná jako rámec pro programový přístup ve scénářích automatizovaného testování. Kromě poskytování propracovanějších řešení pro usnadnění přístupu je také speciálně navržen tak, aby poskytoval robustní funkce pro automatizované testování.

Programový přístup poskytuje schopnost napodobovat prostřednictvím kódu jakoukoli interakci a zkušenost vystavenou tradičním interakcím uživatelů. UIA umožňuje programový přístup prostřednictvím pěti komponent:

  • Strom UIA usnadňuje navigaci v logické struktuře uživatelského rozhraní pro usnadnění a automatizaci.
  • Prvky automatizace uživatelského rozhraní jsou jednotlivé součásti uživatelského rozhraní.
  • Vlastnosti automatizace uživatelského rozhraní poskytují konkrétní informace o prvcích uživatelského rozhraní nebo vzor ovládání.
  • UI Automation Control Patterns definují konkrétní aspekt funkce nebo funkce ovládacího prvku; mohou se skládat z informací o vlastnostech, metodách, událostech a strukturách.
  • Události automatizace uživatelského rozhraní poskytují spouštěč, který reaguje na změny a oznámení v informacích UIA.

Dostupnost

UIA byla původně k dispozici pro Windows Vista a Windows Server 2008 a byla také zpřístupněna pro Windows XP a Windows Server 2003 jako součást .NET Framework 3.0. Byl integrován se všemi následujícími verzemi Windows, až po Windows 7.[5]

Kromě platforem Windows zahrnuje projekt Olive (což je sada doplňkových knihoven pro jádro Mono zaměřené na podporu .NET Framework) podmnožinu WPF (PresentationFramework a WindowsBase) a automatizace uživatelského rozhraní.[6]

Projekt Monell Accessibility společnosti Novell je implementací specifikací poskytovatele a klientů UIA zaměřených na rámec Mono. Projekt dále poskytuje most k Accessibility Toolkit (ATK) pro linuxové pomocné technologie (AT). Novell také pracuje na mostě pro AT založené na UIA pro interakci s aplikacemi, které implementují ATK.[7]

Související technologie a interoperabilita

  • Microsoft Active Accessibility (MSAA): UIA je nástupcem MSAA. Protože však stále existují aplikace založené na MSAA, používají se mosty, které umožňují komunikaci mezi aplikacemi UIA a MSAA. Takže informace lze sdílet mezi dvěma API, byly vyvinuty proxy MSAA-to-UIA a UIA-to-MSAA Bridge. První z nich je komponenta, která spotřebovává informace MSAA a zpřístupňuje je prostřednictvím klientského rozhraní API UIA. Ten umožňuje klientským aplikacím používat přístupové aplikace MSAA, které implementují UIA.[8]
  • Přístupné bohaté internetové aplikace (ÁRIE): UIA AriaRole a AriaProperties vlastnosti mohou poskytovat přístup k hodnotám atributu ARIA odpovídající elementu HTML (který může být webovými prohlížeči vystaven jako automatizační prvek). K dispozici je také obecné mapování z atributů ARIA na UIA.[3]
  • Windows Automation API: Počínaje Windows 7 Microsoft balí své technologie přístupnosti pod rámec nazvaný Windows Automation API. Součástí tohoto rámce budou jak MSAA, tak UIA. Starší verze systému Windows viz KB971513.[9]
  • Mono Accessibility Project: 7. Listopadu 2007 společnost Microsoft a Microsoft Novell Inc., po dokončení roku své dohody o interoperabilitě, oznámili, že rozšíří svou dohodu o přístupnost.[10][11] Konkrétně bylo oznámeno, že Novell vyvine adaptér s otevřeným zdrojovým kódem, který umožní architektuře UIA pracovat s existujícími Linux projekty přístupnosti, jako je Linux Accessibility Toolkit (ATK), která je dodávána s SUSE Linux Enterprise Desktop, červená čepice Enterprise Linux a Ubuntu Linux. To by nakonec učinilo UIA cross-platform.

Poznámky

Reference

externí odkazy