我正在开发一个包含以下技术的测试环境:Jenkins、Genymotion 和calabash-android。使用 ionic,我构建了一个简单的待办事项应用程序 - 事实上,它是本指南 ( http://ionicframework.com/docs/guide/installation.html ) 的一部分。然后,我为 calabash_android 编写了一个简单的功能,并附带了一些步骤来测试这个应用程序。
功能文件:
Feature: Todo's & Projects
Scenario: I can create a new todo under a project
Given I wait for 5 seconds
When I press button with id "new__task"
Then I see field with id "#input__text"
Then I enter text "This is a test" into input with id "#input__text"
When I press button with id2 "create__task"
Then I see id "task__1"
Then I take a screenshot
Scenario: I can create a new project
Given I wait for 5 seconds
When I swipe left
Then I see button with id "#new__project"
脚步:
require 'calabash-android/calabash_steps'
When(/^I press button with id "(.*?)"$/) do |buttonid|
query("CordovaWebView css:'#new__task'")
touch("CordovaWebView css:'#new__task'")
end
Then(/^I see field with id "(.*?)"$/) do |fieldid|
query("CordovaWebView css:'#input__text'")
end
Then(/^I enter text "(.*?)" into input with id "(.*?)"$/) do |text, fieldid|
query("CordovaWebView css:'#input__text'")
enter_text("CordovaWebView css:'#input__text'", "This is a test")
end
When(/^I press button with id2 "(.*?)"$/) do |buttonid|
query("CordovaWebView css:'#create__task'")
touch("CordovaWebView css:'#create__task'")
end
Then(/^I see id "(.*?)"$/) do |fieldid|
query("CordovaWebView css:'#task__1'")
end
Then(/^I see button with id "(.*?)"$/) do |buttonid|
query("CordovaWebView css:'#new__project'")
touch("CordovaWebView css:'#new__project'")
end
当我运行它时,它成功了。所有步骤都通过了,两种情况都通过了,一切都很好。
如果我然后使用“离子浏览器添加人行横道”添加人行横道,我会遇到一些问题。
我编写的这些步骤停止工作,因为“CordovaWebView”不再存在。我期待这一点,因为人行横道将一切都嵌入到它自己的视图中。
问题是我无法查询该视图。当我使用 calabash-android 控制台启动新的 crosswalk'd 应用程序时,我可以“查询(” “)” - 这显示了大约 9 个不同的视图,其中一个感兴趣的是“XWalkCordovaView”。但是,如果我随后将步骤中的“CordovaWebView”替换为“XWalkCordovaView” - 步骤仍然失败。事实上,像这样查询 XWalkCordovaView:"query("XWalkCordovaView css:' '") 什么也没给我,而如果我在 noncrosswalk 应用程序中使用 CordovaWebView 这样做,我会得到页面上的所有 css 元素(如预期的那样)。
我不能真的/不/测试应用程序。但我需要人行横道来优化和测试 x86 架构的能力。
那么...如何在 CrosswalkCordova 视图中成功查询和操作元素?我找对地方了吗?似乎没有人知道,我用谷歌搜索了很多次,结果总是一个 github 用户询问是否“本机”支持人行横道(事实并非如此)。
任何帮助,将不胜感激。