我对Calabash完全陌生,花了一天的时间学习(包括完成所有设置)。
我需要帮助的一件事是如何轻松找到ID。所以我有一个Android应用程序,其中包含占位符文本用户名。
我已经尝试了以下但是它根本无法正常工作(我一直收到一个超时错误,我认为这是因为它无法找到):
When I enter "some@user.com" as "Username"
所以我的问题:
1-如果我想将该电子邮件输入到具有用户名的字段中,则上述实际上是正确的
2-如果我没有像上面这样的占位符,我如何轻松获取引用或ID并使用它
Then /^I enter "([^\"]*)" into input field number (\d+)$/
非常感谢。
答案 0 :(得分:1)
要查找定位器,您应该使用calabash控制台。如果你运行
calabash-android console your_app.apk
一旦它开始了
reinstall_apps
然后
start_test_server_in_background
。
一旦运行,您可以使用calabash查询语法查找要与之互动的元素 - https://github.com/calabash/calabash-ios/wiki/05-Query-syntax。
为了让您入门query("*")
将返回当前屏幕上的所有内容。
query("id:'UserNameField'")
只会返回ID为UserNameField的元素。
要检查它是否是您真正想要的那个,您可以使用flash("id:'UserNameField'")
在模拟器/设备上闪烁几次。
然后与它进行交互,我建议不要使用预先写好的步骤。制作您自己的步骤定义,并记住要求使用葫芦需要使用葫芦,如果您还没有
require 'calabash-android/operations'
When /^I enter the username (.*)$/ do |username|
enter_text("id:'UserNameField'", username)
end
预先写好的步骤可能很有用,但最终会使你的场景难以阅读,一旦你用它做了一些更复杂的事情,你可能还是要编写自己的步骤。
为了帮助您确定步骤定义的正确命令,运行命令非常有用,例如: calabash控制台中的enter_text(" id:' UserNameField'",' username_you_want')因此,每次添加时都不必运行测试线。