首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xamarin.UITest:如何检索设备显示的坐标

Xamarin.UITest:如何检索设备显示的坐标
EN

Stack Overflow用户
提问于 2016-12-22 00:02:15
回答 2查看 2.6K关注 0票数 2

我正在用UITest用C#编写Xamarin.UITest。

如何在UITest中动态检索设备屏幕的坐标?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-22 00:02:15

在Xamarin.UITest中,当您调用app.Query()时,第一个查询结果将返回设备显示。然后可以使用Rect属性获取XY坐标。

下面是一个示例REPL输出,显示app.Query().First()的结果,示例代码将XY坐标分配给您的UITest中的变量。

REPL样本输出

样本码

代码语言:javascript
复制
var windowQuery = app.Query().First();

var topLeftXCoordinate = windowQuery.Rect.X;
var topLeftYCoordinate = windowQuery.Rect.Y;

var topRightXCoordinate = windowQuery.Rect.X + windowQuery.Rect.Width;
var topRightYCoordinate = windowQuery.Rect.Y;

var bottomLeftXCoordinate = windowQuery.Rect.X;
var bottomLeftYCoordinate = windowQuery.Rect.Y + windowQuery.Rect.Height;

var bottomRightXCoordinate = windowQuery.Rect.X + windowQuery.Rect.Width;
var bottomRightYCoordinate = windowQuery.Rect.Y + windowQuery.Rect.Height;

var centerXCoordinate = windowQuery.Rect.CenterX;
var centerYCoordinate = windowQuery.Rect.CenterY;
票数 6
EN

Stack Overflow用户

发布于 2019-09-30 14:36:10

布兰登的答案很好,但没有谓词的app.Query()速度慢得令人痛苦,因为它返回数组,而不是IEnumerable<AppResult> --在我目前正在使用的应用程序中,大约需要10秒。

作为一种更快的选择,您可以指定您知道在根附近的元素的自动ID (或其他一些谓词)。例如,假设视图使用的是ContentPage,则可以使用:

代码语言:javascript
复制
var content = app.Query("content").First();
var rect = content.Rect;

这在不到1s内完成。

请注意,这不会给您精确的显示大小--它是ContentPage的大小,因此它将比显示大小略小一些(但对于我的用例来说,这很好)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41273873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档