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.

其他提示

Best way is to use the back button.

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.

Solution for those who are not using AppiumDriver:

((AppiumDriver)driver).hideKeyboard(); 
public static AndroidDriver driver= null;
......

driver.hideKeyboard();

will work perfectly based on my experience.

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();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top