我的 Android 应用程序中有一个文本字段(EditView),如果它的值无效或为空,它会更改颜色(边框)。在这种情况下,标签(TextView)也会改变它的颜色。
当我尝试使用 query
获取 TextView 时,我看到以下内容:
[0] {
"id" => "field_lable",
"enabled" => true,
"contentDescription" => nil,
"class" => "android.widget.TextView",
"text" => "Name",
"rect" => {
"center_y" => 198.5,
"center_x" => 51.0,
"height" => 27,
"y" => 185,
"width" => 82,
"x" => 10
},
"description" => "android.widget.TextView@a28btb00"
}
如果我需要获取文本,我可以使用 query("TextView id:'field_label'", :text)
Calabash中有没有办法获取TextView的颜色?
最佳答案
不幸的是,这在 Android 中是不可能的。
在 Android 中,Views
(还有 TextView
)几乎可以将任何东西作为背景,而不仅仅是颜色(位图、形状、渐变颜色等) 。因此,无法获取 View 的背景颜色(不会存储)。
这不是Calabash的限制,而是Android系统的限制。您可以获取 Android View 的任何可访问属性。
可以在TextView上查询以下颜色(没有背景):
- 文本颜色
:currentTextColor
- hintTextColor
:hintTextColor
- 高亮颜色
:highlightColor
- 阴影颜色
:shadowColor
关于android - 使用 calabash-android 获取元素的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21185624/