【问题标题】:Search keyboard Appium Java not function搜索键盘 Appium Java 不起作用
【发布时间】:2020-01-12 06:46:58
【问题描述】:

尝试为这个主题找到一个解决方案,所有网站的答案都对我没有帮助,

搜索键盘 Appium Java 不起作用

示例不帮助代码:

((AndroidDriver) driver).pressKey(new KeyEvent(AndroidKey.ENTER));

与:

driver.sendKeyEvent(AndroidKeyCode.ENTER);

或:

((AndroidDriver)driver).pressKeyCode(66)

或:

((AndroidDriver)driver).pressKeyCode(84)

我正在使用这个 appium 版本:

<dependency>
    <groupId>io.appium</groupId>
    <artifactId>java-client</artifactId>
    <version>6.1.0</version>
</dependency>

该选项通过坐标而不是解决方法对我来说,因为这个测试是用真实的手机和任何具有不同屏幕尺寸分辨率的手机完成的

共享异常和堆栈跟踪

org.openqa.selenium.NoSuchElementException: An element could not be located on the page using the given search parameters.
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '3.14.0', revision: 'aacccce0', time: '2018-08-02T20:19:58.91Z'
System info: host: 'Haims-MacBook', ip: 'fe80:0:0:0:8ea:4c20:85c7:1988%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.6', java.version: '1.8.0_112'
Driver info: io.appium.java_client.android.AndroidDriver
Capabilities {appActivity: net.XXX.XXX.ui.acti..., appPackage: net.XXX.XXX.qa, databaseEnabled: false, desired: {appActivity: net.XXX.XXX.ui.acti..., appPackage: net.XXX.XXX.qa, deviceName: Galaxy A20, noReset: false, platformName: android, platformVersion: 9}, deviceManufacturer: samsung, deviceModel: SM-A205FN, deviceName: R58M50DVABW, deviceScreenSize: 720x1560, deviceUDID: R58M50DVABW, javascriptEnabled: true, locationContextEnabled: false, networkConnectionEnabled: true, noReset: false, platform: LINUX, platformName: Android, platformVersion: 9, takesScreenshot: true, warnings: {}, webStorageEnabled: false}
Session ID: ad88e2fa-102c-4e19-b8fa-ac48054838ff

【问题讨论】:

  • 确实 - 帖子已更新。

标签: java selenium appium-android


【解决方案1】:
capabilities.setCapability("unicodeKeyboard", "true");                                     
capabilities.setCapability("resetKeyboard", "true");

在尝试之前设置它

((AndroidDriver)driver).pressKeyCode(AndroidKeyCode.ENTER)

【讨论】:

  • 我的问题正是关于“搜索”-“搜索键盘 Appium Java 不起作用”,我该如何点击搜索键?
  • 顺便说一句,此选项也不适用于真实设备: ((AndroidDriver)driver).pressKeyCode(AndroidKeyCode.KEYCODE_SEARCH);也许你的建议应该只适用于模拟器?但我只需要在真实设备中进行测试。任何人帮助! :-(
  • 还有一点可能忘了提:真机是Android OS9(三星Galaxy A20)
【解决方案2】:

您可以使用下面的代码来按下搜索按钮。

((JavascriptExecutor) driver).executeScript("mobile: performEditorAction", ImmutableMap.of("action", "search"));

如果这不起作用,请尝试将 search 替换为以下命令

  1. 发送
  2. 下一个
  3. 完成

此外,如果这不起作用,请尝试在执行此命令之前延迟 1 或 2 秒。 有关更多信息,您可以参考 http://appium.io/docs/en/commands/mobile-command/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-19
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    • 2020-08-08
    • 1970-01-01
    • 2013-07-11
    • 1970-01-01
    相关资源
    最近更新 更多