다음을 통해 공유


UI 자동화 트리 개요

참고참고

이 문서는 System.Windows.Automation 네임스페이스에 정의된 관리되는 UI Automation 클래스를 사용하려는 .NET Framework 개발자를 위해 작성되었습니다.UI Automation에 대한 최신 정보는 Windows Automation API: UI Automation을 참조하십시오.

보조 기술 제품과 테스트 스크립트에서 UI Automation 트리를 탐색하여 user interface (UI) 및 그 요소에 대한 정보를 수집할 수 있습니다.

UI Automation 트리에는 현재 데스크톱을 나타내며 해당 자식 요소가 응용 프로그램 창을 나타내는 루트 요소(RootElement)가 있습니다. 이러한 각 자식 요소에는 메뉴, 단추, 도구 모음, 목록 상자 등의 UI 항목을 나타내는 요소가 포함될 수 있습니다. 포함된 각 요소도 목록 항목과 같은 요소를 포함할 수 있습니다.

UI Automation 트리는 고정된 구조가 아니며 수천 개의 요소를 포함할 수 있기 때문에 전체 형태를 보기 어렵습니다. 필요할 경우에 부분적으로 구성되며, 요소를 추가, 이동 또는 제거할 경우 변경될 수 있습니다.

UI 자동화 공급자는 대개 창에서 호스팅되는 루트와 하위 트리로 구성되는 조각의 항목 간에 탐색을 구현하여 UI Automation 트리를 지원합니다. 그러나 공급자는 컨트롤 간의 탐색을 고려하지 않습니다. 이러한 탐색은 기본 창 공급자의 정보를 사용하여 UI Automation 핵심에서 관리합니다.

이 항목에는 다음 단원이 포함되어 있습니다.

  • 자동화 트리의 뷰
  • 관련 항목

자동화 트리의 뷰

UI Automation 트리를 필터링하여 특정 클라이언트에 관련된 AutomationElement 개체만 포함하는 뷰를 만들 수 있습니다. 이렇게 하면 클라이언트가 UI Automation에서 표시되는 구조를 특정한 요구 사항에 맞춰 사용자 지정할 수 있습니다.

클라이언트는 범위를 지정하거나 필터링하는 방법, 두 가지를 통해 뷰를 사용자 지정할 수 있습니다. 범위를 지정하는 방법은 기본 요소부터 시작하여 뷰에서 표시되는 정도를 정의하는 것입니다. 예를 들어 응용 프로그램에서 데스크톱의 직계 자식만 찾거나 응용 프로그램 창의 모든 하위 항목을 찾을 수 있습니다. 반면에 필터링은 뷰에 포함할 요소 유형을 정의하는 것입니다.

UI 자동화 공급자는 IsControlElementPropertyIsContentElementProperty 속성을 비롯하여 요소에 대한 속성을 정의하여 필터링을 지원합니다.

UI Automation에서는 세 가지 기본 뷰를 제공합니다. 이들 뷰는 수행되는 필터링 유형에 의해 정의되며 그 범위는 응용 프로그램에 의해 정의됩니다. 또한 응용 프로그램에서는 속성에 다른 필터를 적용할 수도 있는데, 예를 들어 컨트롤 뷰에 활성화된 컨트롤만 포함할 수도 있습니다.

Raw 뷰

UI Automation 트리의 Raw 뷰는 AutomationElement 개체의 전체 트리로, 데스크톱이 루트입니다. Raw 뷰는 응용 프로그램의 기본 프로그램 방식 구조를 철저하게 따르므로 가장 자세한 뷰입니다. 또한 다른 트리 뷰의 기반이 되는 뷰이기도 합니다. 이 뷰는 기본 UI 프레임워크에 기반하기 때문에 WPF 단추의 Raw 뷰는 Win32 단추의 Raw 뷰와 다릅니다.

Raw 뷰는 속성을 지정하지 않고 요소를 검색하거나 RawViewWalker를 통해 트리를 탐색하는 방법으로 만들 수 있습니다.

컨트롤 뷰

UI Automation 트리의 컨트롤 뷰는 응용 프로그램을 최종 사용자가 인식하는 UI 구조에 밀접하게 매핑하기 때문에 최종 사용자에게 UI를 표시하고 최종 사용자가 응용 프로그램과 간편하게 상호 작용할 수 있도록 하는 보조 기술 제품의 작업을 간소화합니다.

컨트롤 뷰는 Raw 뷰의 하위 집합이며, 최종 사용자가 UI 컨트롤의 논리적 구조와 상호 작용하거나 이 구조에 사용되는 항목으로 파악하는 Raw 뷰의 모든 UI 항목을 포함합니다. UI의 논리적 구조에 사용되지만 상호 작용하지 않는 UI 항목으로는 목록 뷰 머리글, 도구 모음, 메뉴, 상태 표시줄과 같은 항목 컨테이너가 있습니다. 상호 작용하지 않는 항목 중에 단순히 레이아웃이나 장식용으로 사용되는 항목은 컨트롤 뷰에 표시되지 않습니다. 대화 상자 컨트롤의 레이아웃으로만 사용되고 자체 정보는 포함하지 않는 패널이 이에 해당됩니다. 상호 작용하지 않는 항목 중 컨트롤 뷰에 표시되는 항목에는 대화 상자에서 정적 텍스트와 정보를 포함하는 그래픽이 있습니다. 이러한 항목은 키보드 포커스를 받을 수 없습니다.

컨트롤 뷰는 IsControlElement 속성이 true로 설정된 요소를 검색하거나 요소를 검색하거나 ControlViewWalker를 통해 트리를 탐색하는 방법으로 만들 수 있습니다.

콘텐츠 뷰

UI Automation 트리의 콘텐츠 뷰는 컨트롤 뷰의 하위 집합이며, 키보드 포커스를 받을 수 있는 UI 항목과 UI 항목의 레이블이 아닌 일부 텍스트를 비롯하여 사용자 인터페이스에 실제 정보를 전달하는 UI 항목을 포함합니다. 콘텐츠 뷰에 표시되는 항목에는 최종 사용자가 사용하는 정보를 나타내는 드롭다운 콤보 상자의 값이 있습니다. 콘텐츠 뷰에서 콤보 상자와 목록 상자는 사용자가 선택할 수 있는 항목을 한 개 또는 여러 개 포함하는 UI 항목 모음으로 표현됩니다. 하나는 항상 열려 있고 다른 하나는 확장하거나 축소할 수 있다는 사실은 둘 다 콘텐츠 뷰에서 사용자에게 제공되는 데이터나 콘텐츠를 보여 주도록 설계되었다는 점을 감안하면 그리 중요하지 않습니다.

콘텐츠 뷰는 IsContentElement 속성이 true로 설정된 요소를 검색하거나 ContentViewWalker를 통해 트리를 탐색하는 방법으로 만들 수 있습니다.

참고 항목

참조

AutomationElement

개념

UI 자동화 개요