【问题标题】:Xamarin UITest Query How to get just the label as responseXamarin UITest Query 如何仅获取标签作为响应
【发布时间】:2019-10-21 18:11:49
【问题描述】:

当我在 Repl() 窗口中使用自动化 ID 查询我的列表视图时,我得到了一大块数据。我只想要一个字段“文本”或“标签”

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

这是返回值: [ [0] {
ID => 空, 说明 => ">", 矩形 => { 宽度 => 88, 高度 => 20.5, X => 12, Y => 144, 中心X => 56, 中心 Y => 154.25 }, 标签 => “四月,吉尔 M.”, Text => "Abril, Jill M.", 类 => "UILabel", 启用 => 真 } ]

我想继续查询并只返回“Abril, Jill M”。

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

【问题讨论】:

  • 您尝试添加.Text 吗?
  • 我也试过了 - 没有运气

标签: xamarin xamarin.forms xamarin.uitest


【解决方案1】:

这应该可行:

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

var labelText = query[0]?.Text;

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

在简历中,Query 返回一个 AppResult 数组 (AppResult[])。你需要得到你想要的项目,在这种情况下是第一个项目。

希望这会有所帮助。-

【讨论】:

    【解决方案2】:

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

    输出 - “Abril,Jill M.”,,,

    OR 文本

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

    输出 - “Abril, Jill M.”

    这可能行得通

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-10
      • 1970-01-01
      • 2016-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多