WinAppDriver
UWP アプリを使用して UI テストを自動化しようとしています。inspect.exe
ドキュメントには、 (ie UIAutomation
)を通して見えるものはすべてを通して制御できると書かれていWinAppDriver
ます。これは、UIAutomation を介して基本的なコントロールにアクセスできることを意味します。また、これらのコントロール内のコンテンツでさえ、UI オートメーションを介してアクセスできる場合があります。またはのヘッダー、TextBlock
またはToggleSwitch
のポップアップのようにComboBox
。
これに励まされてControlTemplate
、共通コントロールを変更して、コントロールの特定の要素を UIAutomation で表示できるようにしました。の例を参照してくださいToggleSwitch
(デフォルトでは、 でマークされているため、およびのプロパティはControlTemplate
公開されません) 。OnContent
OffContent
ToggleSwitch
AutomationProperties.AutomationView = "Raw"
しかし、のヘッダーを取得しようComboBox
とすると、 経由でアクセスできませんでしたUIAutomation
。
<ComboBox x:Name="Box">
<ComboBox.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Text="This is a combobox" x:Name="Block" AutomationProperties.Name="TextBlock1" />
<FontIcon VerticalAlignment="Top"
AutomationProperties.AutomationId="Error"
FontFamily="Segoe MDL2 Assets"
Margin="2 0"
Glyph=""
x:Name="FontIcon"
Foreground="DarkRed"/>
</StackPanel>
</ComboBox.Header>
<ComboBoxItem>Green</ComboBoxItem>
<ComboBoxItem>Red</ComboBoxItem>
</ComboBox>
はやControlTemplate
のような他のコントロールに似ていますが、何らかの理由で で定義されているものは からアクセスできません(ID と のポップアップ リストを除く) 。だから私の質問は、特定の UI コントロールがコンテンツを公開し (たとえば)、他のコントロールを公開しないのはなぜですか?ToggleSwitch
TextBox
ControlTemplate
UIAutomation
ComboBox
Header