问题标签 [calabash-ios]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
69 浏览

scroll - 如何通过在 calabash-ios 中上下滚动来找到列表中的元素

我想在列表中找到一个元素,但我在列表的中间,所以我必须向上和向下滚动才能找到列表中的元素。任何人都可以帮助如何上下滚动以查找列表中的元素

提前
感谢卡西克

0 投票
0 回答
320 浏览

ios - 来自 Calabash 的多个触摸事件,带有单个请求

Calabash-ios 涉及单次点击的测试已经开始失败,在只应该发生一次的情况下接收到多次点击。

我正在对模拟器“iPhone 5s (8.2 Simulator)”进行测试,并尝试了各种 Calabash 敲击方法,包括tap_marktouch例如:

它生成一个 http 调用(使用 Wireshark 嗅探):

但在模拟器中导致多次点击,这可以从模拟器控制台日志中看到:

并且这两行重复相同(相同的时间戳) - 一次,两次或三次以上,重复相同uia.tapOffset的事件。

我正在使用带有 Calabash 0.13.0 的 Xcode 6.2 build 6C131e。在我从 0.11.4 升级后开始出现故障,尽管我也从 Xcode 6.1.1 升级到了 6.2,所以我不确定哪个负责。

有没有人遇到过类似的事情?有什么建议么?

0 投票
1 回答
513 浏览

ios - 如何在使用基于视图的类模型时调用通用 Calabash 方法?

我正在按照基于视图的类模型为我的应用程序设置 Calabash 测试框架,即每个视图都有一个包含该视图所需方法的类。

但是当我调用诸如“wait_for()”之类的葫芦函数时,它会抛出一个错误:

LoggedInPage:Class (NoMethodError) 的未定义方法“wait_for”

我已经在我的 env.rb 中添加了这些

0 投票
1 回答
973 浏览

calabash - 如何覆盖 Calabash 预定义步骤?

我正在定义自定义葫芦步骤(用于 iOS 和 Android),并希望有选择地覆盖各种预定义步骤。一个例子是:

而不是使用这个实现,我想提供我自己的。如果我定义并使用带有匹配正则表达式的步骤,则会出现错误:

它还建议使用“--guess”,但这没有帮助,我仍然得到Cucumber::Ambiguous错误。我可以对我的步骤的正则表达式进行一些任意更改,例如:

但这感觉像是一个糟糕的解决方案,原因有几个

  • 必须防止使用内置步骤,尤其是因为它可能是最自然的措辞
  • 如果 canned_steps 在未来的修订中添加了一个冲突的步骤,我将被迫改变我的措辞和我的所有场景
    • Android 和 iOS 预定义步骤之间的措辞似乎也有些不同。如果我无法覆盖,这意味着我需要避免在 Android 上使用 iOS 预定义步骤,即使我不会在 Android 上收到Cucumber::Ambiguous错误。
  • 一般来说,我不想告诉场景作者(通常是 QA)不要使用特定的措辞,我宁愿添加替代措辞而不是删除选项

有没有办法取消定义内置步骤?android canned_step 文档建议应该有:You can add your own steps or change the ones you see here

我也不想立即丢失所有预定义的步骤(例如:不需要 calabash_steps.rb)。我宁愿只在它们成为问题时才逐步淘汰它们。如果可以的话,我不想直接编辑葫芦代码,因为这需要滚动我自己的葫芦发行版而不是使用 gem 来安装它。

0 投票
0 回答
271 浏览

wifi - 如果通过 Wi-fi 执行 Calabash 测试,通常会卡在启动服务器上

问题的一般描述:

由于项目特定(iDevice 必须通过 Lightning 端口连接到外部硬件),我们必须通过 Wi-fi 执行我们的测试包。

有专用的 Macbook Pro(2011 年初)和 Yosemite 10.10.2 作为客户端执行测试。Mac 和 iDevice 都连接到同一个隔离的(仅 1 个 Mac 和 1 个 iDevice)Wi-Fi 接入点(无法访问互联网)。

每次我尝试执行所有现有测试套件(约 150 个测试)时,我都会面临这样一个事实,即在某个随机点(即当时已经执行了一些测试),带有 Calabash 服务器的应用程序是可视启动的在 iDevice 端,但从命令行的角度来看,服务器似乎没有响应它已成功启动的 Mac 客户端(只是我的假设),并且整个执行在这一点上卡住了。如果我通过“Ctrl+C”放弃测试执行并尝试再次开始执行或通过控制台执行 start_test_server_in_background,我将看到应用程序服务器已启动并立即关闭多次,但没有任何运气来建立新的稳定应用程序服务器。

这里唯一的解决方法是重新启动 iDevice 并在重新启动后通过 USB 连接 iDevice 启动 App 服务器,然后我才能再次通过 Wi-fi 运行 Calabash 测试。

我尝试过使用许多不同的 iDevices 和不同的 Wi-Fi 接入点,以及几台 Mac,但没有运气能够为所有测试提供一个稳定的不间断运行。

如果有人帮助我解决这个令人难以置信的烦人问题,我会非常高兴。

一些细节:

  • iOS版本:8.1.3、8.2
  • XCode 版本:6.2
  • Mac 操作系统版本:10.10.2
  • Xcode 路径:/Applications/Xcode.app/Contents/Developer
  • 葫芦版本:0.13.0(和 0.14.0)
  • calabash.framework 版本:0.13.0(和 0.14.0)
  • 这是发生“挂起”时的控制台输出(DEBUG=1):

更新:这是 Calabash 在卡住后无法重新启动应用程序时向终端打印的内容:

0 投票
3 回答
408 浏览

xamarin - Calabash 错误 - 类 AuthenticationPage 的超类不匹配

我是 Ruby/Calabash 的新手,并设法为 ios 设置了一个专用的 Calabash 自动化框架,该框架具有页面对象模型模式并成功运行。

我也想为 android 扩展相同的框架。我在 features 文件夹中为 ios 和 android 创建了一个专用文件夹,并考虑将它们各自的页面对象放在这些文件夹中。

但是当我运行 calabash-android 时,calabash 发现 ios 文件夹中存在类似的页面类并开始抛出错误消息。我想为 ios 和 android 页面遵循相同的命名约定,而不会出现这种名称冲突。可能吗?

0 投票
1 回答
328 浏览

ios - 使用 xml 或 css 或全局变量的数据驱动 ios-Calabash 自动化测试

我正在使用 calabash-ios 进行自动化测试。我希望能够运行 cucumber 一次,并让它为 x 个用户名运行 x 次,并运行整个测试场景。

我想用这个:

假设我使用 id [#{Login-name}] 和 pwd "PASSWORD" 作为 [#{country-name}] 用户登录,并且有一个可以存储国家和用户名值的全局变量。

我曾希望使用脚本运行 cucumber x 次并每次设置全局变量的值。这可能吗?如果是这样,有人能指出我正确的方向吗?

我尝试使用:@@Loginname=value 但收到此错误:features/step_definitions/common.rb:1: 警告:从顶层未初始化的类变量@@Login in Object (NameError) 访问类变量

如果失败,是否可以使用葫芦访问存储在 xml 或 css 文件中的数据?

0 投票
2 回答
1124 浏览

xcode - 使用 Calabash iOS 在 irb 中启动特定模拟器

我正在使用 Calabash 进行 iOS 测试,当我进入时calabash-ios console,打开 irb 并输入start_test_server_in_background它会启动模拟器。我遇到的问题是它构建了一个我不想再使用的模拟器。我开始使用5s模拟器,但现在我希望它在我进入时构建6s start_test_server_in_background

是否有需要设置的环境变量,或者我可以在输入时在控制台中传入一个变量start_test_server_in_background

0 投票
1 回答
90 浏览

ios - 我无法使用 calabsh 在 iOS ui 上点击元素

我在 iOS 应用上有一个无法触摸的标签

我想点击基本上就是这个的最后一个元素

我尝试了不同的方法来单击该元素,但都给了我相同的错误

我尝试了以下

有什么想法或建议让我能够触摸该标签?

0 投票
2 回答
550 浏览

ios - 如何使用葫芦在 iOS 分页视图上从一个页面滑动到另一个页面

我无法向左滑动以从一个视图转到另一个视图。所以我现在尝试使用屏幕底部的分页点来更改视图。

有人可以告诉我如何使用葫芦触摸点'n'吗?

我将回到代码并尝试查看是否可以为点设置可访问性标签。但是,如果世界上的某个人已经通过某种方式解决了这个问题,那我会很高兴的。

我使用了以下代码:

这通过了,但实际上并没有滑动。

编辑:

据我所知,这个点是画出来的,不是一个物体,但我可能弄错了。所以我不能给它一个标签。我仍在尝试使用滑动来更改页面-