我对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/

10-10 09:11