作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 Xamarin.UITest 编写测试,我想检查特定 UI 按钮的颜色。从 Repl 我可以像这样捕获按钮:
>>> app.Query(c => c.Button()).First()
Query for Button() gave 1 results.
{
Id => "buttonGo",
Description => "android.widget.Button{b312e568 VFED..C. ........ 26,234-454,314 #7f060033 app:id/buttonGo}",
Rect => {
Width => 428,
Height => 80,
X => 26,
Y => 328,
CenterX => 240,
CenterY => 368
},
Label => null,
Text => "Go!",
Class => "android.widget.Button",
Enabled => true
}
不幸的是,似乎没有任何属性可以给我颜色。有没有一种方法可以让我从按钮中提取更多信息,或者可以通过其他方式查询我可以用来查找按钮颜色的信息?
更新:所以我正在取得一些进展,这要归功于使用 Invoke 的建议。我现在正在尝试执行以下操作:
>>> app.Query(c => c.Button("buttonGo").Invoke("getBackground"))
应该调用 getBackground并返回给我一个可绘制的背景,但会抛出以下错误:
Ignoring failed json serialisation of result of Query for Button("buttonGo").Invoke("getBackground"). Value was never requested
Query for Button("buttonGo").Invoke("getBackground") gave no results.
null
如果我调用 getHeight 一切都按预期工作,所以我在这里有点困惑:
>>> app.Query(c => c.Button("buttonGo").Invoke("getHeight"))
Query for Button("buttonGo").Invoke("getHeight") gave 1 results.
[
[0] 80
]
最佳答案
你要找的是 AppQuery.Invoke
请参阅 Xamarin.UITest 文档“Invoke a Method on an AppResult or UI Element”
更新:
我认为您不能返回复杂类型,但您可以链接 Invoke
调用。我的情况是:
app.WaitForElement (c => c.Button ("buttonGo"));
app.Query(c => c.Button("buttonGo").Invoke("getBackground").Invoke("getColor"));
这将返回按钮的颜色 ID。
关于android - 如何在 UITest 中检查按钮的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35696224/
我是一名优秀的程序员,十分优秀!