使用appium访问移动虚拟键盘

时间:2016-04-06 12:13:51

标签: java appium

我正在使用appium进行移动自动化,在这种情况下我需要在提供输入后点击移动虚拟键盘上的"Done"按钮。如何在appium中使用WebDriver

5 个答案:

答案 0 :(得分:0)

  1. 我认为来自@Slavo的解决方案已在appium中弃用。虽然具有相同键事件的adb命令应该起作用,即

    adb shell input keyevent 66

  2. 在大多数情况下,您的输入主要是单个线路,例如进行搜索。在这种情况下,您可以更改前一行:

    WebElement myTextView = <find your text-view> myTextView.sendKeys("your-text/n"); // "/n" as a new line in java

  3. 您还可以隐藏键盘并使用其他屏幕小部件执行操作。喜欢:

    driver.hideKeyboard(); WebElement otherGoodToGoButton = <find other useful button/widget> otherGoodToGoButton.click();

  4. 使用TouchActions点击屏幕坐标也是一种方法,但我不建议使用它。

答案 1 :(得分:0)

您可以使用隐藏键盘功能

driver.hideKeyboard()

谢谢, 萨迪克

答案 2 :(得分:0)

driver.pressKeyCode(AndroidKeyCode.ENTER);

答案 3 :(得分:0)

我们在本机小键盘上的“完成”复选框上遇到了很多麻烦,并且没有任何关键事件键代码起作用。最后,此脚本对我们有用:

$driver.execute_script("mobile:performEditorAction", {'action'=>'done'})

无论使用哪种语言,都要执行脚本'mobile:performEditorAction'并向其发送哈希值{'action'=>'done'}。

答案 4 :(得分:0)

JavaScript中使用wd的此解决方案对我有效:

return driver.waitForElementById(<elementId>).type(<text to type>).click()
               .execute( "mobile: performEditorAction", { "action": "search" } );

这使我能够找到文本字段,输入一些文本并提交搜索命令(与单击键盘中的搜索图标相同)。

当然,您必须用适当的值替换<elementId><text to type>。有关“移动设备:performEditorAction”的详细信息,请参见http://appium.io/docs/en/commands/mobile-command/

您可以将“搜索”替换为“完成”或在上面的链接中找到的各种其他命令。