【发布时间】:2021-06-29 01:35:29
【问题描述】:
在我创建通用查询和结果调用的基本页面中,为了简单起见,我有一个函数返回基于 Android 或 iOS 构建的查询。
```public Query QueryById(string searchId)
{
Query tempQuery = null;
if (_onAndroid)
{ tempQuery = x => x.Marked(searchId); }
else if (_oniOS)
{ tempQuery = x => x.Id(searchId); }
else // should never enter here
{ throw new NotSupportedException(); }
return tempQuery;
}```
现在我想扩展一个在这里创建的查询,比如添加一个
.Index(2)
甚至抓取该索引下的所有类以抓取该原始容器中的信息集合
.Index(3).Class("LabelRenderer")
有没有办法可以进行查询并扩展它。 除了转换为字符串,然后附加所有内容然后将其放回查询对象之外。
感谢您的任何见解!
【问题讨论】:
-
你可以尝试使用
app.Query(q => q.Id("searchId").Descendant().Index(2).Class("LabelRenderer")之类的东西。 -
谢谢,但我已经创建了一个查询字符串并将其放入一个 Query 对象中。在不重新创建字符串的初始部分的情况下,我想附加其他内容。示例:我创建
Query newQuery = x=>x.Marked("MyGroupNameParameter")我可以创建一个带有参数的预制查询字符串,并在另一个函数中获得类似AppResult[] = _app.WaitForElement(newQuery);的结果我想要另一个函数,其中测试人员通过所需组的索引,我希望能够追加到 Query 对象而不重新创建。我可以使用 newQuery 并附加 .Index(x) 吗? -
您可以使用
x.Marked("MyGroupNameParameter")作为查询参数。但是如果你创建 newQuery 然后使用 newQuery 的索引,它会返回 AppResult 数组的索引值 (AppResult[])。 -
请举个例子,因为我不太明白你是如何使用它进入 Class 级别(见上文)的。