WinAppDriver-如何获取元素上可用的属性列表

时间:2019-02-19 23:45:10

标签: wpf windows appium winappdriver

我正在将Appium与WinAppDriver一起使用来控制WinForms / WPF应用程序。

我正在寻找一种编程方式来获取已检索元素上可用属性的列表。

我当前的想法是要求className并使用它来查找我已预先配置的属性的静态字典。

var element = driver.FindElementByXPath(xPath);

var properties = element.getProperties();    // Is there something I can call here?

2 个答案:

答案 0 :(得分:0)

您可以使用<DataTemplate x:Key="GridLayoutTemplate"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="*" /> </Grid.RowDefinitions> <Rectangle Grid.Row="0" Grid.Column="0" Fill="{Binding RowColor}" /> <TextBlock Text="{Binding RowText}" /> </Grid> </DataTemplate> <DataTemplate x:Key="ListLayoutTemplate"> <StackPanel VerticalAlignment="Stretch"> <ItemsControl ItemsSource="{Binding RowData}" ItemTemplate="{StaticResource GridLayoutTemplate}"> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <UniformGrid Rows="1" Columns="9"></UniformGrid> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> </ItemsControl> <Grid Background="Green"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="*" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <Rectangle Grid.Row="0" Grid.Column="0" Fill="{Binding TileColor}" /> <TextBlock Grid.Row="0" Grid.Column="0" Text="{Binding TileText}" /> </Grid> </StackPanel> </DataTemplate> 来获取值。您还可以使用其他属性,例如element.GetAttribute("Value")LegacyStateValue.ValueIsEnabledIsOffscreen等。您可以在Inspect中抓住属性列表。 Windows工具随附的exe(UI访问)

答案 1 :(得分:0)

这不是最好的解决方案,但我想我会提到它,以防其他人发现它有用:

可以获取pagesource的xml并查看其中的属性。这可以通过调用driver.PageSource来完成,它将返回一个xml字符串。

希望有人觉得这有用。