如何在葫芦上设置 keyboard_enter_text 超时?

How to set keyboard_enter_text timeout at calabash?

问题是我正在尝试使用 keyboard_enter_text 编写大文本,每次运行此代码时它都会在一半停止并在一段时间后重新开始它给了我超时错误。

And I write an large post into post field         # features/step_definitions/my_first_steps.rb:27
  Time out waiting for UIAutomation run-loop for command uia.typeString('new post test new post test new post test new post test new post test new post test new post test new post test new post test new post test new post test new post test new post test new post test new post test new post test new post test new post test new post test new post test new post test new post test ', ''). Waiting for index:3 (RunLoop::TimeoutError)
  ./features/step_definitions/my_first_steps.rb:31:in `/^I write an large post into post field$/'
  features/add_post.feature:19:in `And I write an large post into post field'

我已经尝试使用 set_text 在文本字段中书写,但它已被弃用。

我该如何解决?

提前致谢。

是的,运行 循环有一些超时问题,如果要输入长字符串,可以解决。您可以使用相同的字符串减少长度并像这样输入三次:

Then I use the native keyboard to enter "new post test new post test new post test new post " into the "Email" input field
Then I use the native keyboard to enter "new post test new post test new post test new post " into the "Email" input field
Then I use the native keyboard to enter "new post test new post test new post test new post " into the "Email" input field

我们已经开始在具有深层视图层次结构的视图中更频繁地看到这种情况。

Calabash 在键入之前遍历整个视图层次结构。它这样做是因为 UIAutomation 中的错误。长期使用 Calabash 的用户会回忆起那些错误键入字符串、跳过或重复字符或键入导致应用程序崩溃的日子。

修复是在键入之前尽可能多地收集有关视图层次结构的信息。

解决方法是调用:

uia("uia.typeString('String to type')")

缺点是您不会获得 Calabash 提供的任何错误检查。我们正在调查这个问题。