排毒:iOS 模拟器如何在键盘上按 Next

Posted

技术标签:

【中文标题】排毒:iOS 模拟器如何在键盘上按 Next【英文标题】:Detox: iOS Simulator how to press Next on keyboard 【发布时间】:2018-05-08 11:16:17 【问题描述】:

输入用户电子邮件地址后,我希望 Detox 按下一步移动到密码字段。

我尝试通过元素 id 查找密码字段并调用 .tap() 以获得焦点,但键盘部分遮挡了密码字段并且未能通过 75% 的可见性标准。

Error Trace: [
  
    "Description" : "Assertion with matcher [M] failed: UI element [E] failed to match the following matcher(s): [S]",
    "Description Glossary" :     
      "M" : "matcherForSufficientlyVisible(>=0.750000)",
      "E" : "<RCTUITextField:0x7f9abd45f190; AX=Y; AX.id='Password Input'; AX.value='your new password'; AX.frame=42.5, 342.5, 235, 40; AX.activationPoint=160, 362.5; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame=0, 0, 235, 40; alpha=1; text=''>",
      "S" : "matcherForSufficientlyVisible(>=0.750000)"
    ,
    "Error Domain" : "com.google.earlgrey.ElementInteractionErrorDomain",
    "Error Code" : "3",
    "File Name" : "GREYAssertions.m",
    "Function Name" : "+[GREYAssertions grey_createAssertionWithMatcher:]_block_invoke",
    "Line" : "75"
  
]

知道如何解决这个问题吗?我正在使用 detox 来测试一个 react-native 应用程序。

谢谢。

【问题讨论】:

【参考方案1】:

原来它就像在文本输入的末尾添加\n 一样简单,如下所示:

const email = 'test@email.com';
await element(by.id('email_input')).typeText(`$email\n`);

【讨论】:

以上是关于排毒:iOS 模拟器如何在键盘上按 Next的主要内容,如果未能解决你的问题,请参考以下文章

排毒不会在 Circle CI 上启动 iOS 模拟器

如何在 iOS 中控制警报使用排毒?

如何在 QT 虚拟键盘上按下信号键并播放声音点击轨道?

如何在 Python 中抑制来自键盘的命令?

在 Xcode 6 中,如何使用硬件键盘但在 iOS 模拟器中显示软件键盘

模拟 iOS 屏幕键盘上的“Go”、“Next”按钮按下以进行 xcode 测试