简体   繁体   中英

How to dismiss the keyboard in appium using Java?

This code just aims to find the textbox and send some text to it. When it does that the keyboard appears on the android device.How to dismiss it after the 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() will only work with AppiumDriver . I am using java-client-2.2.0.jar that contains this capability.

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

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

Add these desired capabilities values if you want to disable the keyboard on your android selenium tests.

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

Please use Appium 1.0

Add libraries or add maven dependency of Appium Java client:

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

Create driver instance in the following way:

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

And use the following function to hide the keyboard:

driver.hideKeyboard();

I use driver.hideKeyboard(); every time I'm using sendKeys() to type something. Works perfectly for me.

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

driver.hideKeyboard();

will works perfectly based from my experience

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

Still works with 1.7.2 and assuming 1.8

针对未使用AppiumDriver解决方案:

((AppiumDriver)driver).hideKeyboard(); 

driver.hideKeyboard(); some times does not work. Because while running testcase keyboard not appear fast, So testcase fail. If I use Thread.sleep(5000); before hideKeyboard method, it's working very fine for me every time.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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