繁体   English   中英

如何使用 Java 关闭 appium 中的键盘?

[英]How to dismiss the keyboard in appium using Java?

这段代码只是为了找到文本框并向它发送一些文本。 当它出现时,键盘出现在 android 设备上。如何在 sendKeys 之后关闭它。

@Test
    public static void test_demo() throws Exception {
        WebElement element = driver.findElement(By.id("mytextfield"));
        element.sendKeys("test");
        //how do I dismiss keyboard which appears on my android device after sendKeys?  
    }

driver.hideKeyboard()仅适用于AppiumDriver 我正在使用包含此功能的java-client-2.2.0.jar。

最好的方法是使用后退按钮。

driver.navigate().back(); // For older version of appium

如果要在Android selenium测试中禁用键盘,请添加这些所需的功能值。

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

请使用Appium 1.0

添加库或添加Appium Java客户端的maven依赖关系:

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

以下列方式创建驱动程序实例:

AppiumDriver driver=null;
driver= new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);

并使用以下功能隐藏键盘:

driver.hideKeyboard();

我用的是driver.hideKeyboard(); 每次我使用sendKeys()键入内容。 适合我。

public static AndroidDriver driver= null;
......

driver.hideKeyboard();

将根据我的经验完美地运作

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

仍然适用于1.7.2并假设为1.8

针对未使用AppiumDriver解决方案:

((AppiumDriver)driver).hideKeyboard(); 

driver.hideKeyboard(); 有时不起作用。 因为在运行 testcase 键盘时出现的速度不快,所以 testcase 失败。 如果我使用Thread.sleep(5000); 在使用hideKeyboard方法之前,它每次对我来说都很hideKeyboard

try {
    Thread.sleep(5000);
} catch (Exception e) {
    e.getMessage();
}
driver.hideKeyboard();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM