我使用calabash-android版本0.5.5控制台与我的应用程序进行交互,一切运行正常,除了几乎没有我的元素有id的事实。我正在使用的应用程序是使用Titanium制作的,我搜索的元素在我的代码中设置了id。
当我打印所有观看次数时像query("*",:id)
这样的ID我只获得NoResourceEntry
和nil。例如:
[ 0] nil,
[ 1] "NoResourceEntry-86",
[ 2] "NoResourceEntry-87",
[ 3] "NoResourceEntry-88",
[ 4] nil,
[ 5] nil
可能有什么不对?
答案 0 :(得分:1)
我能够通过使用accessibilityLabel属性来解决此问题,如本期中所述:
https://github.com/appersonlabs/TiCalabash/issues/9
将accessibilityLabel添加到与元素id
匹配的元素中<View id="myView" accessibilityLabel="myView">
...
</View>
然后你可以从calabash-android控制台
查询它query("* marked:'myView.'")
应返回匹配元素数组
[0] {
"class" => "org.appcelerator.titanium.view.TiCompositeLayout",
"tag" => nil,
"description" => "org.appcelerator.titanium.view.TiCompositeLayout{3f90638 V.E...CL. ........ 0,0-205,173 #14}",
"id" => "NoResourceEntry-20",
"visible" => true,
"rect" => {
"height" => 173,
"width" => 205,
"y" => 1621,
"x" => 0,
"center_x" => 102,
"center_y" => 1707
},
"enabled" => true,
"contentDescription" => "myView."
}]
答案 1 :(得分:0)
你可以尝试:
query("*").map{|e| e['id']}