您可以使用更多参数构建 Xamarin UITest 查询吗?
Posted
技术标签:
【中文标题】您可以使用更多参数构建 Xamarin UITest 查询吗?【英文标题】:Can you build upon a Xamarin UITest Query with further parameters? 【发布时间】: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 级别(见上文)的。
【参考方案1】:
下面的代码应该可以工作:
var query = app.Query(q => q.Id("searchId")
.Descendant()
.Index(2)
.Class("LabelRenderer"));
【讨论】:
谢谢,但遗憾的是这不是我想要的。它可能无法......但我正在寻找的是我是否已经为 iOS 或“q .Marked("searchId") for android)。当我深入研究时,我可以附加到这个 Query 对象以扩展它吗?一些原因......我创建了一个可以找到一个按钮的查询,我可以用这个查询点击它,但是现在我还想检查文本或文本颜色或 x,y 坐标或任何东西......所以我可以获取原始查询并将其扩展/附加到它而不重新创建整个查询字符串。以上是关于您可以使用更多参数构建 Xamarin UITest 查询吗?的主要内容,如果未能解决你的问题,请参考以下文章
在项目 Xamarin.Forms 中构建时出现错误“值不能为空参数名称:方法”
使用 Multidex 构建 xamarin.android 时出现 CREATEMULTIDEXMAINDEXCLASSLIST 错误