2

WinAppDriverUWP アプリを使用して UI テストを自動化しようとしています。inspect.exeドキュメントには、 (ie UIAutomation)を通して見えるものはすべてを通して制御できると書かれていWinAppDriverます。これは、UIAutomation を介して基本的なコントロールにアクセスできることを意味します。また、これらのコントロール内のコンテンツでさえ、UI オートメーションを介してアクセスできる場合があります。またはのヘッダー、TextBlockまたはToggleSwitchのポップアップのようにComboBox

これに励まされてControlTemplate、共通コントロールを変更して、コントロールの特定の要素を UIAutomation で表示できるようにしました。の例を参照してくださいToggleSwitch(デフォルトでは、 でマークされているため、およびのプロパティはControlTemplate公開されません) 。OnContentOffContentToggleSwitchAutomationProperties.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="&#xEB90;"
                      x:Name="FontIcon"
                      Foreground="DarkRed"/>
        </StackPanel>
    </ComboBox.Header>
    <ComboBoxItem>Green</ComboBoxItem>
    <ComboBoxItem>Red</ComboBoxItem>
</ComboBox>

はやControlTemplateのような他のコントロールに似ていますが、何らかの理由で で定義されているものは からアクセスできません(ID と のポップアップ リストを除く) 。だから私の質問は、特定の UI コントロールがコンテンツを公開し (たとえば)、他のコントロールを公開しないのはなぜですか?ToggleSwitchTextBoxControlTemplateUIAutomationComboBoxHeader

4

0 に答える 0