【问题标题】:Handling soft keyboard events in appium-android在 appium-android 中处理软键盘事件
【发布时间】:2016-01-15 03:19:36
【问题描述】:

如何使用appium android处理软键盘并隐藏它。

下面是我的场景:

  1. 打开 Flipkart 应用程序
  2. 点击搜索图标
  3. 输入一些文字 [例如:汽车]
  4. 点击设备键盘上的搜索图标

下面是我实现的代码:

driver.findElement(By.className(properties.getProperty("home_menu_className"))).click();
        System.out.println("clicked fist cross mark");
        driver.findElement(By.className(properties.getProperty("home_menu_className"))).click();
        System.out.println("click menu options");
        driver.findElementByName(properties.getProperty("home_menu_back_name")).click();
        System.out.println("clicked home back button");
        //WebElement search = driver.findElement(By.xpath(properties.getProperty("search_xpath")));
        //taction.tap(search);
        driver.rotate(ScreenOrientation.LANDSCAPE);
        driver.findElementByName(properties.getProperty("search_name")).click();
        System.out.println("clicked search icon");
        WebElement search_item = driver.findElementByName(properties.getProperty("search_edit_field_name"));
        search_item.sendKeys("cars");
        search_item.sendkeys(KEYS.ENTER);   
        System.out.println("entered search text");
        delay(8000);

我使用“driver.rotate(ScreenOrientation.LANDSCAPE);”在代码中但是 得到错误 org.openqa.selenium.WebDriverException: An unknown 处理命令时发生服务器端错误。 (警告: 服务器没有提供任何堆栈跟踪信息)

并且在使用 driver.hideKeyboard() 时出现错误;

谁能告诉我?

提前致谢。

【问题讨论】:

  • 您的 Java 客户端 JAR 的版本是什么?你使用 webdriver/androiddriver/appiumdriver 吗?
  • 我正在使用 3.2.0 java 客户端 jars 。我正在使用 appium 驱动程序和 android 驱动程序
  • 你试过了吗? driver.navigate().back() ,它会帮助你处理键盘。
  • 没有。但是 driver.navigate().back();我认为将重定向到后页。能否请您详细告诉我,我没有明白这一点
  • 实际上当键盘打开并且执行driver.navigate().back()时,它会关闭键盘,如果键盘没有打开并且您执行driver.navigate().back(),那么只有它会将您重定向到上一个屏幕。

标签: android selenium appium


【解决方案1】:

要隐藏键盘,您可以使用:

//To hide keyboard. 
driver.hideKeyboard();

或 输入一些关键事件使用:

driver.press_keycode(KEY_CODE);    #KEY_CODE = 66 for ENTER

请参阅以下 URL 以查找 KEY_CODES : https://developer.android.com/reference/android/view/KeyEvent

【讨论】:

    【解决方案2】:

    您可以使用以下代码,它会正常工作。

    driver.sendKeyEvent(AndroidKeyCode.ENTER);

    【讨论】:

      【解决方案3】:

      在您的测试中添加这些功能以隐藏键盘:

      capabilities.setCapability("unicodeKeyboard", true);
      capabilities.setCapability("resetKeyboard", true);
      

      【讨论】:

        猜你喜欢
        • 2016-05-04
        • 2016-05-18
        • 1970-01-01
        • 2011-09-14
        • 1970-01-01
        • 2011-07-20
        • 1970-01-01
        • 2021-12-26
        • 1970-01-01
        相关资源
        最近更新 更多