calabash-android将contentDescription传入自定义步骤定义

时间:2015-04-27 19:08:53

标签: xamarin calabash-android

我正在尝试将contentDescription传递给自定义步骤定义,但收效甚微,我不确定是否可以做到,那里的帮助很少,所以我有点失落。

所以我已经启动了calabash-android控制台 然后start_test_server_in_background 然后查询(“TextView”)返回textView中的元素列表,在此列表中是contentDescription,每个都有一个字符串值,例如“thisIsValue”

现在我在我的功能文件中写了一个步骤:

然后我触摸contentDescription“thisIsValue”文本

我的自定义步骤方法的语法是:

然后/ ^我触摸contentDescription文本(\ d +)$ / do | text,contentDescription | tap_when_element_exists(“contentDescription contentDescription:#{arg1}”)

我开始认为传递contentDescription只是不可能在表单上使用相同文本的多个值,因为在我们的实例中生成xamarin表单的方式使用ID是不可能的,另一个选项将是但是,这并不是一件好事。

谢谢大家。

格雷姆

2 个答案:

答案 0 :(得分:3)

关于步骤定义的细节可能很少。

  1. (\d+)正则表达式表示您只查找contentDescription中带有数字的元素。
  2. 您正在传递第一个值(上面提到的仅数字值),然后期望传递两个值(textcontentDescription)。
  3. 您应该点按TextViewImageView*等类型的元素,但您想点按contentDescription元素。
  4. 您想点击contentDescription的元素,其值为arg1,但您的块内没有arg1
  5. 不要忘记查询中contentDescription值附近的撇号。
  6. 所以,你的步骤定义可能应该是这样的:

    Then /^I touch contentDescription text: (.*?)$/ do |arg1|
      tap_when_element_exists("TextView contentDescription:'#{arg1}'")
    end
    

答案 1 :(得分:0)

@kjuri - 你的解决方案现在已经工作了,似乎在我的Windows环境设置中它正在查看错误的步骤def,我清除了文件夹并重新启动 - 基本上再打开和关闭!!非常感谢你对此的耐心和你的帮助..非常感谢。总结这个工作:

然后/ ^我触摸contentDescription“(。*?)”text $ / do | text |     tap_when_element_exists(“RadioButton contentDescription:'#{text}'”) 端