Calabash Android控制台没有显示任何ID

时间:2015-01-14 16:38:50

标签: android xamarin calabash

我使用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

可能有什么不对?

2 个答案:

答案 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']}