You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Xamarin UITests中获取ListView项数及新增项后统计

嘿,我来帮你解决在Xamarin UITests里获取ListView条目数量的问题,结合你添加条目后统计的场景,给你详细的步骤和代码示例:

在Xamarin UITests中获取ListView条目数量的方法

一、基础获取方式

你的ListView已经设置了x:Name="ListView",我们可以利用这个标记定位到控件,再通过两种常用方式获取条目数量:

  • 直接查询ListView的子元素:
    UITest里,ListView的每个条目对应一个子元素(通常是ViewCell),直接统计子元素数量即可得到条目数:

    var listItemCount = App.Query(c => c.Marked("ListView").Child()).Count;
    
  • 查询条目内的特定标记元素:
    如果你的ItemTemplate里有固定标记的控件(比如每个条目里的Label设置了x:Name="ItemTitle"),也可以直接查询这个控件的实例数量,结果就是条目总数:

    var listItemCount = App.Query(c => c.Marked("ItemTitle")).Count;
    

二、结合你的场景:添加条目后统计数量

针对你需要先添加若干条目再统计的需求,完整的测试流程可以这样实现:

1. 核心测试步骤

  • 导航到展示ListView的目标页面
  • 重复执行添加条目操作(点击添加按钮、输入内容、保存)
  • 等待UI更新完成后,获取ListView的条目数量
  • 断言数量是否符合预期

2. 完整代码示例

// 1. 导航到列表页面(假设跳转按钮的标记是"GoToItemsPage")
App.Tap(c => c.Marked("GoToItemsPage"));

// 2. 添加第一条测试条目
App.Tap(c => c.Marked("AddNewItemButton")); // 点击添加按钮
App.EnterText(c => c.Marked("ItemContentInput"), "我的第一条测试条目"); // 输入条目内容
App.Tap(c => c.Marked("SaveItemButton")); // 保存条目

// 3. 添加第二条测试条目
App.Tap(c => c.Marked("AddNewItemButton"));
App.EnterText(c => c.Marked("ItemContentInput"), "我的第二条测试条目");
App.Tap(c => c.Marked("SaveItemButton"));

// 4. 等待ListView完成渲染(可选,避免UI未更新导致统计错误)
App.WaitForElement(c => c.Marked("ListView"), timeout: TimeSpan.FromSeconds(3));

// 5. 获取当前ListView的条目数量
var actualItemCount = App.Query(c => c.Marked("ListView").Child()).Count;

// 6. 断言数量:这里添加了2条,假设初始条目数为0,预期结果为2
Assert.AreEqual(2, actualItemCount, "ListView的条目数量不符合预期");

三、额外注意事项

  • 处理滚动加载场景:如果你的ListView是分页/滚动加载的,要先滚动到底部确保所有条目都加载完成,再统计数量:
    // 滚动ListView到底部,确保全部条目加载
    App.ScrollDownTo(c => c.Marked("ListView"), timeout: TimeSpan.FromSeconds(5));
    // 再获取条目数量
    var itemCount = App.Query(c => c.Marked("ListView").Child()).Count;
    
  • 确保标记唯一性:所有用于定位的Marked值(比如按钮、输入框的x:Name)要保证在页面中唯一,避免定位错误。
  • 等待UI更新:添加条目后UI可能有延迟,用WaitForElement可以有效避免统计时的异步渲染问题。

内容的提问来源于stack exchange,提问作者pavel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:30:26