Xamarin UITest 查询如何只获取标签作为响应

Xamarin UITest Query How to get just the label as response

当我在 Repl() window 中使用自动化 ID 查询列表视图时,我得到了一大块数据。我只想返回一个字段 'Text' 或 'Label'

这是我的查询: app.Query(q => q.Id("officerList").Descendant().Id("officerName").Index(0).Class("UILabel").索引(0))

这里是 return: [[0] {
编号 => 空, 说明=> ">", 矩形 => { 宽度 => 88, 高度 => 20.5, X => 12, Y => 144, 中心 X => 56, 中心 Y => 154.25 }, 标签 => "Abril, Jill M.", 文本 => "Abril, Jill M.", Class => "UILabel", 启用 => 真 } ]

我想继续查询 return 只有 "Abril, Jill M."

我尝试添加 .Label 没有运气它因错误而中断: (1,103):错误 CS1061:键入 Xamarin.UITest.Queries.AppQuery' does not contain a definition forLabel' 并且找不到扩展方法 Label' of typeXamarin.UITest.Queries.AppQuery'。您是否缺少程序集参考

这应该有效:

var query = app.Query(q => q.Id("officerList")
            .Descendant().Id("officerName")
            .Index(0).Class("UILabel")
            .Index(0));

var labelText = query[0]?.Text;

labelText应该包含你想要的标签的值。

在简历中,Query returns AppResult 的数组 (AppResult[])。您需要得到您想要的物品,在这种情况下是第一个物品。

希望对您有所帮助。-

您也可以针对标签尝试此查询 - q.Id("officerList").Descendant().Id("officerName").Index(0).Class("UILabel").Index(0)).标签

输出 - "Abril, Jill M.",

或对于文本

q.Id("officerList").Descendant().Id("officerName").Index(0).Class("UILabel").Index (0)).first.text

输出 - "Abril, Jill M."

也许这行得通