Sdílet prostřednictvím


Přehled stromu automatizace uživatelského rozhraní

Produkty asistenční technologie a testovací skripty procházejí stromem Microsoft UI Automation a shromažďují informace o uživatelském rozhraní a jeho prvcích.

Ve stromu Automatizace uživatelského rozhraní je kořenový prvek, který představuje okno plochy Systému Windows ("plocha") a jehož podřízené prvky představují okna aplikací. Každý z těchto podřízených prvků může obsahovat prvky, které představují části uživatelského rozhraní, jako jsou nabídky, tlačítka, panely nástrojů a seznamy. Tyto prvky mohou obsahovat prvky, například položky seznamu.

Strom automatizace uživatelského rozhraní není pevná struktura. Je zřídkakdy vidět ve své celistvosti, jelikož může obsahovat tisíce prvků. Části stromu Automatizace uživatelského rozhraní jsou vytvořené tak, jak je klient potřebuje, a struktura stromu se mění při přidání, přesunutí nebo odebrání prvků.

Zprostředkovatelé automatizace uživatelského rozhraní podporují strom automatizace uživatelského rozhraní implementací navigace mezi položkami v fragmentu. Fragment je úplný podstrom prvků z konkrétního frameworku a má kořenový prvek (označovaný jako kořen fragmentu), který je obvykle umístěný v okně.

Poskytovatelé se nezajímají o navigaci z jednoho ovládacího prvku do druhého. To spravuje jádro automatizace uživatelského rozhraní, které používá informace z výchozích poskytovatelů oken.

Toto téma obsahuje následující části.

Zobrazení stromu automatizace uživatelského rozhraní

Strom automatizace uživatelského rozhraní lze filtrovat a vytvořit zobrazení, která obsahují pouze ty prvky automatizace uživatelského rozhraní, které jsou relevantní pro konkrétního klienta. Tento přístup umožňuje klientům přizpůsobit strukturu, která je prezentována prostřednictvím automatizace uživatelského rozhraní podle jejich konkrétních potřeb.

Klient může zobrazení přizpůsobit nastavením rozsahu a filtrováním. Rozsah definuje rozsah zobrazení počínaje základním prvkem. Aplikace může například chtít najít pouze přímé podřízené objekty plochy nebo všechny potomky okna aplikace. Filtrování definuje typy prvků, které jsou součástí zobrazení.

Zprostředkovatelé automatizace uživatelského rozhraní podporují filtrování definováním vlastností prvků, včetně IUIAutomationElement::IsControlElement a IUIAutomationElement::IsContentElement vlastnosti.

Automatizace uživatelského rozhraní poskytuje tři výchozí zobrazení: nezpracované zobrazení, zobrazení ovládacího prvku a zobrazení obsahu. Tato zobrazení jsou definována typem provedeného filtrování. Obor libovolného zobrazení je definován aplikací. Aplikace může použít další filtry pro vlastnosti; Chcete-li například zahrnout pouze povolené ovládací prvky do zobrazení ovládacího prvku.

Nezpracovaný pohled

Nezpracovaný pohled na strom automatizace UI je kompletní strom automatizačních prvků, pro které je plocha kořenem. Surové zobrazení úzce sleduje nativní programovou strukturu aplikace a je nejpodrobnější zobrazení, které je k dispozici. Je to také základ, na kterém jsou postavena další zobrazení stromu. Vzhledem k tomu, že toto zobrazení závisí na základní architektuře uživatelského rozhraní, má nezpracované zobrazení tlačítka WPF (Windows Presentation Foundation) jiné nezpracované zobrazení než tlačítko Microsoft Win32.

Nezpracované zobrazení je získáno buď vyhledáváním prvků bez zadání vlastností, nebo použitím IUIAutomation::RawViewWalker k získání rozhraní IUIAutomationTreeWalker pro navigaci ve stromu.

Zobrazení ovládacího prvku

Zobrazení ovládacího prvku je částí zobrazení nezpracovaných dat. Zahrnuje pouze položky uživatelského rozhraní, které mají IUIAutomationElement::IsControlElement vlastnost nastavena na TRUE.

Zobrazení ovládacího prvku obsahuje položky uživatelského rozhraní, které poskytují informace uživateli nebo umožňují uživateli provést akci. Jedná se o položky uživatelského rozhraní, které jsou nejzajímavější pro automatizované testování aplikací.

Zobrazení ovládacího prvku obsahuje také neinteraktivní položky uživatelského rozhraní, které přispívají k logické struktuře uživatelského rozhraní. Patří mezi ně kontejnery položek, jako jsou záhlaví zobrazení seznamu, panely nástrojů, nabídky a stavový řádek. Jiné neinteraktivní položky, které se zobrazí v zobrazení ovládacího prvku, jsou grafika s informacemi a statickým textem v dialogovém okně.

Neinteraktivní položky používané pouze pro rozložení nebo dekorativní účely, jako jsou panely použité k rozložení ovládacích prvků v dialogovém okně, se v zobrazení ovládacího prvku nezobrazují.

Zobrazení stromu ovládacích prvků Automatizace uživatelského rozhraní úzce odpovídá struktuře uživatelského rozhraní, jak ji vnímá koncový uživatel. Díky tomu může produkt technologie usnadnění popsat uživatelské rozhraní koncovému uživateli a pomoct tomuto koncovému uživateli pracovat s aplikací.

Zobrazení ovládacího prvku je získáno vyhledáváním prvků, které mají vlastnost IUIAutomationElement::IsControlElement nastavenu na true, nebo pomocí ControlViewWalker získat rozhraní IUIAutomationTreeWalker pro navigaci ve stromu.

Zobrazení obsahu

Zobrazení obsahu v rámci stromu uživatelského rozhraní automatizace je podmnožinou zobrazení ovládacích prvků. Zahrnuje pouze položky uživatelského rozhraní, které mají IUIAutomationElement::IsControlElement a IUIAutomationElement::IsContentElement vlastnost nastavena na TRUE.

Zobrazení obsahu obsahuje položky uživatelského rozhraní, které vyjadřují skutečné informace v uživatelském rozhraní, včetně položek uživatelského rozhraní, které můžou přijímat fokus klávesnice, a text, který není popiskem položky uživatelského rozhraní. Jedná se o položky uživatelského rozhraní, které jsou pro aplikaci čtečky obrazovky nejzajímavější. Například hodnoty v rozevíracím seznamu se zobrazí v zobrazení obsahu, protože hodnoty představují informace používané koncovým uživatelem.

V zobrazení obsahu jsou rozevírací seznam a seznam reprezentovány jako kolekce položek uživatelského rozhraní, kde lze vybrat jednu položku nebo více položek. Skutečnost, že jedna položka je vždy otevřená a jednu položku lze rozbalit a sbalit, je irelevantní v zobrazení obsahu, protože je navrženo tak, aby zobrazovalo data nebo obsah, který se prezentuje uživateli.

Zobrazení obsahu je získáno vyhledáváním prvků, které mají IsControlElement a CurrentIsContentElement vlastnost nastavenu na TRUEnebo tím, že použijete IUIAutomation::ContentViewWalker k získání IUIAutomationTreeWalker rozhraní pro navigaci ve stromu.

Následující obrázky ukazují rozdíly mezi zobrazením ovládacího prvku a zobrazením obsahu. První obrázek ukazuje jednoduché kombinované pole s třemi položkami. Druhý obrázek ukazuje, jak se položky uživatelského rozhraní kombinovaného pole zobrazují v kontrolním a obsahovém zobrazení aplikace UISpy.exe.

snímek obrazovky jednoduchého pole se seznamem se třemi rozevíracími položkami

snímek obrazovky aplikace uispy se zobrazeními ovládacích prvků a obsahu položek kombinovaného pole

Koncepční

vytvoření objektu CUIAutomation

získání prvků automatizace uživatelského rozhraní

základy automatizace uživatelského rozhraní