【问题标题】:How to send ENTER key in protractor tests on iOS?如何在 iOS 上的量角器测试中发送 ENTER 键?
【发布时间】:2015-12-28 02:19:56
【问题描述】:

我正在使用 ProtractorJS(和 Appium)在浏览器和设备上测试网站。其中一项测试是在搜索框中键入一些文本,然后按 ENTER。这是页面对象的 sn-p。

page.searchInput.sendKeys("Text");
page.searchInput.sendKeys(protractor.Key.ENTER);

以上两行在任何浏览器和 Android 设备上都可以正常工作。然而,同样的测试在 iOS 上失败了,因为没有发送 ENTER 键。在 iOS 键盘中,我必须按下的键是“搜索”键。

测试必须使用键盘触发搜索。

关于如何在 iOS 上发送 ENTER 键的任何想法?

【问题讨论】:

  • 您是否尝试发送\n?方法如下 - page.searchInput.sendKeys("Text\n");
  • 感谢@GirishSortur 的回复。我刚试了,还是不行
  • 好的,page.searchInput.sendKeys(protractor.Key.RETURN);self.driver.execute_script('UIATarget.localTarget().frontMostApp().keyboard().buttons()["Search"].tap();'); 怎么样?似乎应该按回车而不是回车。
  • 忘了提到我尝试使用RETURN 并没有工作。我尝试了另一个选项browser.executeScript('UIATarget.localTarget().frontMostApp().keyboard().b‌​uttons()["Search"].tap();');,我得到了- UnknownError: Invalid character '\u8203'
  • 试试这个:UIATarget.localTarget().frontMostApp().mainWindow().keyboard().buttons().firstWi‌​thPredicate("name contains[c] 'search'"); 或:UIATarget.localTarget().frontMostApp().keyboard().b‌​utt‌​ons()["search"].tap(); - 注意小写

标签: ios protractor appium


【解决方案1】:

如果页面上没有按钮,Safari 会固执地不提交表单。一般来说,我使用按钮标签而不是输入标签并获得更好的结果,但无论哪种方式,除非页面上有提交按钮,并且该按钮是可见的(请参阅此问题以供参考:How to submit a form when the return key is pressed?),Safari 将固执地拒绝提交页面。在这种情况下,我会在页面上放置一个提交按钮,即使大多数用户永远不会在移动设备上使用它。你可能很适合让它通过你的设计部门。另一种选择是使用模糊事件并以这种方式触发它。

【讨论】:

    【解决方案2】:

    您可以只发送换行符\n 或在应用右下角通过坐标比例创建点击。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多