如何在 Xamarin UITests 中获取列表视图项的数量
How to get count of the listview items at Xamarin UITests
假设我有 Xamarin 应用程序和显示特定项目列表的页面。
我想编写 UI 测试来添加一些项目,而不是尝试对它们进行计数。
我有下一个列表视图:
<ListView x:Name="ListView" Grid.Row="1" ItemsSource="{Binding Items, Mode=TwoWay}" HorizontalOptions="StartAndExpand" VerticalOptions="StartAndExpand"
BackgroundColor="Transparent" SeparatorVisibility="None" HasUnevenRows="false" Margin="20, 0">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell.View>
<Grid AutomationId="ListItem" VerticalOptions="FillAndExpand">
<Grid.RowDefinitions>
<RowDefinition Height="1" />
<RowDefinition Height="*" />
<RowDefinition Height="1" />
</Grid.RowDefinitions>
<StackLayout Orientation="Horizontal" HorizontalOptions="StartAndExpand" VerticalOptions="Center" HeightRequest="38" Grid.Row="1">
<!-- item's description -->
</StackLayout>
</Grid>
</ViewCell.View>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
还有我的 UI 测试:
[Test]
public void CheckForSamplesAdding()
{
app.Tap(c => c.Id("PageWithList"));
// add some items:
app.EnterText("inputForItem", "item001");
app.PressEnter();
Task.Delay(250);
app.EnterText("inputForItem", "item002");
app.PressEnter();
Task.Delay(250);
app.EnterText("inputForItem", "item003");
app.PressEnter();
Task.Delay(250);
// assert to check count of listView items
}
我想我必须将 automationId 添加到 listview 并以某种方式描述检查此 listview 中的项目计数..但我找不到任何信息如何执行它..
先感谢您。
用类似的东西很容易计算屏幕上显示的元素数量:
app.Query(x => x.Marked("ListView").Child()).Length
如果你想计算所有元素,你应该使用 backdoor like in .
另一个解决方案可能是滚动以尝试在列表中查找元素(如果您不仅要测试元素创建,还想测试更多内容,这很有用)。
假设我有 Xamarin 应用程序和显示特定项目列表的页面。 我想编写 UI 测试来添加一些项目,而不是尝试对它们进行计数。
我有下一个列表视图:
<ListView x:Name="ListView" Grid.Row="1" ItemsSource="{Binding Items, Mode=TwoWay}" HorizontalOptions="StartAndExpand" VerticalOptions="StartAndExpand"
BackgroundColor="Transparent" SeparatorVisibility="None" HasUnevenRows="false" Margin="20, 0">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell.View>
<Grid AutomationId="ListItem" VerticalOptions="FillAndExpand">
<Grid.RowDefinitions>
<RowDefinition Height="1" />
<RowDefinition Height="*" />
<RowDefinition Height="1" />
</Grid.RowDefinitions>
<StackLayout Orientation="Horizontal" HorizontalOptions="StartAndExpand" VerticalOptions="Center" HeightRequest="38" Grid.Row="1">
<!-- item's description -->
</StackLayout>
</Grid>
</ViewCell.View>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
还有我的 UI 测试:
[Test]
public void CheckForSamplesAdding()
{
app.Tap(c => c.Id("PageWithList"));
// add some items:
app.EnterText("inputForItem", "item001");
app.PressEnter();
Task.Delay(250);
app.EnterText("inputForItem", "item002");
app.PressEnter();
Task.Delay(250);
app.EnterText("inputForItem", "item003");
app.PressEnter();
Task.Delay(250);
// assert to check count of listView items
}
我想我必须将 automationId 添加到 listview 并以某种方式描述检查此 listview 中的项目计数..但我找不到任何信息如何执行它.. 先感谢您。
用类似的东西很容易计算屏幕上显示的元素数量:
app.Query(x => x.Marked("ListView").Child()).Length
如果你想计算所有元素,你应该使用 backdoor like in
另一个解决方案可能是滚动以尝试在列表中查找元素(如果您不仅要测试元素创建,还想测试更多内容,这很有用)。