我正在尝试将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是不可能的,另一个选项将是但是,这并不是一件好事。
谢谢大家。
格雷姆
答案 0 :(得分:3)
关于步骤定义的细节可能很少。
(\d+)
正则表达式表示您只查找contentDescription中带有数字的元素。 text
和contentDescription
)。TextView
,ImageView
,*
等类型的元素,但您想点按contentDescription
元素。 contentDescription
的元素,其值为arg1
,但您的块内没有arg1
。 contentDescription
值附近的撇号。所以,你的步骤定义可能应该是这样的:
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}'”) 端