listview - 如何获取 Xamarin UITests 中 ListView 项目的计数

标签 listview xamarin ui-testing xamarin.uitest

假设我有 Xamarin 应用程序和显示特定项目列表的页面。 我想编写 UI 测试来添加一些项目并尝试对它们进行计数。

我有下一个 ListView :

<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就像 this answer .

另一种解决方案可能是滚动以尝试在列表中查找元素(如果您想要测试的不仅仅是元素创建,则很有用)。

关于listview - 如何获取 Xamarin UITests 中 ListView 项目的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49814066/

相关文章:

android - 使用 RecyclerView 适配器更新数据的最佳方法

java - 使用 Try 语句时的 Android SetText

c# - 从 JSON 下载信息(Xamarin C#)

ios - 在 iOS 模拟器上记录和回放用户操作?

java - Android Espresso UI 测试 - 测试运行失败 : Instrumentation run failed due to 'java.lang.IllegalAccessError'

c# - 以编程方式选择 ListView 中的项目

android - 在 Android 中设置 ListViews 大小的可能方法?

android - Xamarin proguard.ParseException : Unknown option '' in line 1 of file 'Properties/proguard.cfg'

c# - 如何从 Azure Active Directory 检索用户信息

ios - Swift - 你如何测试点击按钮时标签是否已更新