【问题标题】:Protractor + Appium hide android keyboard in chromeProtractor + Appium 在 chrome 中隐藏 android 键盘
【发布时间】:2018-01-22 11:29:26
【问题描述】:
  • MacOS Sierra 10.12.4
  • 节点 - v6.9.5
  • Appium - 1.6.0
  • 量角器 - 5.1.2

我对使用 appium 完全陌生,并且刚刚获得了使用运行 google chrome 浏览器的 android 模拟器的基本设置。我遇到的问题是,我认为软键盘挡住了路,所以当它输入我的凭据时,像登录这样的简单操作在 bat b/c 中不起作用,键盘挡住了,所以它未正确单击登录按钮。我发现的解决方法是在发送键后单击文本字段以摆脱软键盘。我希望有一种简单的方法可以禁用键盘进行自动化测试。我希望我不必做的另一个选项是重载 sendKeys 函数以检查它是否在移动设备上,然后在发送密钥后单击文本字段。任何有关如何解决此问题的帮助或建议表示赞赏。

可能的解决方案

我从量角器 api 参考页面找到了这个 ExtendedWebDriver 信息,但我很难找到任何成功实现它以使用函数 hideSoftKeyboard 的示例

【问题讨论】:

  • 你试过 driver.hideKeyboard() 吗?
  • @BillHileman 我将如何在量角器测试中调用它。它似乎不是一个有效的功能
  • 我对量角器不是第一手熟悉,所以我可能会弄错。但是,由于您标记了 Appium,我假设自动化是通过 webdriver 进行的。如果是,并且 webdriver 已正确定义/实例化,则应该有一个 hideKeyboard 方法附加到创建的驱动程序对象。

标签: android google-chrome protractor appium


【解决方案1】:

好吧,所以我无法使用 ExtendedWebDriver 的量角器实现来让它工作。但是他们说你也可以使用wd-bridge

// configuring wd in onPrepare
// wdBridge helps to bridge wd driver with other selenium clients
// See https://github.com/sebv/wd-bridge/blob/master/README.md
onPrepare: function () {
  var wd = require('wd'),
    protractor = require('protractor'),
    wdBridge = require('wd-bridge')(protractor, wd);
  wdBridge.initFromProtractor(exports.config);
}

然后在登录功能的规范文件中,我可以在使用全局 wdBrowser 输入密码后隐藏键盘

this.passwordFld.sendKeys(password).then(() => {
  wdBrowser.hideDeviceKeyboard();
  this.signInBtn.click();
});

【讨论】:

    猜你喜欢
    • 2016-05-04
    • 2017-03-19
    • 2014-08-07
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    • 2021-07-13
    • 2020-07-12
    • 2011-02-17
    相关资源
    最近更新 更多