我对Calabash完全陌生,花了一天的时间学习(包括进行所有设置)。
我需要帮助的一件事是如何轻松查找ID。所以我有一个Android应用程序,其中包含占位符文本用户名。
我已经尝试了以下方法,但是它根本不起作用(我一直收到超时错误,我认为这是由于找不到它):
When I enter "[email protected]" as "Username"
所以我的问题是:
如果我想将该电子邮件输入到具有用户名的字段中,则1-实际上是上述正确的
2-如果我没有上述的占位符,我如何轻松获取引用或ID并将其用于
Then /^I enter "([^\"]*)" into input field number (\d+)$/
非常感谢。
最佳答案
要查找定位器,您应该使用葫芦控制台。如果你跑calabash-android console your_app.apk
然后一旦开始reinstall_apps
接着start_test_server_in_background
。
一旦运行,您就可以使用瓢虫查询语法查找要与之交互的元素-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'),因此您不必在每次添加一行时都运行测试。
关于android - Calabash-Android-查找ID和处理占位符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31054111/