calabashandroid将contentDescription传递到自定义步骤定义中



我正试图将contentDescription传递到自定义步骤定义中,但收效甚微,而且我不确定自己能不能做到,那里几乎没有帮助,所以我有点不知所措。

所以我已经启动了calabash android控制台然后启动测试服务器然后查询("TextView"),返回TextView中的元素列表,该列表中为contentDescription,每个元素都有一个字符串值,例如"thisIsValue">

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

然后我触摸内容描述"thisIsValue"文本

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

然后/^I触摸contentDescription text(\d+)$/do|text,contentDescription|tap_when_element_exists("contentDescription contentDescription:#{arg1}")

我开始认为,对于一个表单上同一文本的多个值,传递contentDescription是不可能的,由于xamarin表单的生成方式,使用ID是不可行的。在我们的例子中,另一个选项是索引,但这并不是很好。

谢谢大家。

格雷姆

关于步骤定义,几乎没有错误的细节。

  1. (d+)正则表达式表示,您只在contentDescription中查找带数字的元素
  2. 您将一个值(上面提到的仅限数字的值)传递到块中,然后期望传递两个值(textcontentDescription)
  3. 您应该点击类型为TextViewImageView*等的元素,但您想要点击contentDescription元素
  4. 您希望使用值为arg1contentDescription敲击元素,但块中没有arg1
  5. 不要忘记查询中contentDescription值周围的撇号

所以,你的步骤定义可能应该是这样的:

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

@kjuri-您的解决方案现在已经工作了,在我的windows环境设置中,它似乎看到了不正确的步骤def,我清除了文件夹并重新开始-基本上是再次打开和关闭它!!非常感谢你在这件事上的耐心和帮助。。非常感谢。总结这一工作:

然后/^我触摸内容描述"(.*?)"text$/do|text|tap_when_element_exists("RadioButton内容描述:'#{text}'")结束

相关内容

  • 没有找到相关文章

最新更新