Calabash - Android - 查找Ids和处理占位符

时间:2015-06-25 15:06:36

标签: android calabash calabash-android

我对Calabash完全陌生,花了一天的时间学习(包括完成所有设置)。

我需要帮助的一件事是如何轻松找到ID。所以我有一个Android应用程序,其中包含占位符文本用户名。

我已经尝试了以下但是它根本无法正常工作(我一直收到一个超时错误,我认为这是因为它无法找到):

When I enter "some@user.com" as "Username"

所以我的问题:

1-如果我想将该电子邮件输入到具有用户名的字段中,则上述实际上是正确的  2-如果我没有像上面这样的占位符,我如何轻松获取引用或ID并使用它 Then /^I enter "([^\"]*)" into input field number (\d+)$/

非常感谢。

1 个答案:

答案 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')因此,每次添加时都不必运行测试线。

相关问题