Appium 求助, 如何提升文本框赋值的速度

萤火虫 · 2016年12月14日 · 最后由 萤火虫 回复于 2016年12月15日 · 1484 次阅读

目前有一个需求, 是要快速朝文本框内输入文本, 但 appium 的 sendKeys() 方法, 速度较慢, 为了提高速度, 目前找到的解决方法有以下几种:

  1. 利用 adb 的 adb shell input text 方法, 速度很快, 但无法输入中文, 达不到需求

  2. 看见论坛前辈们的讨论, 修改了 sendKeys() 方法的底层实现, 修改的 org.openqa.selenium.remote.RemoteWebElement.sendKeys(CharSequence...) 方法中的

    execute(DriverCommand.SEND_KEYS_TO_ELEMENT, ImmutableMap.of("id", id, "value", keys));
    

    execute(DriverCommand.SEND_KEYS_TO_ACTIVE_ELEMENT, ImmutableMap.of("value", keys));
    

    速度有一些提高, 原来的速度是:
    设值 webView 文本框的时间为:8082 毫秒,
    设值原生文本框的时间为 : 5597 毫.秒.

    修改后为 :
    设值 webView 文本框的时间为:4408 毫秒,
    设值原生文本框的时间为 : 3001 毫秒.
    速度有了一定的提高, 但还是达不到想要的效果

  3. 看论坛前辈说, 可以通过粘贴板 ctrl + v 的方法为文本框赋值,

    driver.pressKeyCode(50, AndroidKeyMetastate.META_CTRL_ON);
    

    测试了, 速度很快,几百毫秒的样子. 但我不知道怎样将文本通过 java 代码的方式放入的安卓的粘贴板中, 查了一些资料, 都是 android 项目的实现方法, 对安卓比较陌生, 尝试过
    封装成 jar 包调用, 但没有成功.

    麻烦请教下, 论坛中有没有前辈知道如何提高 appium 的输入速度,

用的是安卓真机.
appium 用的是 : java-client-4.1.2.jar,
selenium 用的是 : selenium-server-standalone-2.53.1.jar,
appium 的服务端用的是 appium1.4.16.1,
不胜感激!!!

已解决, 利用一个插件, 可以实现已 adb 命令的方式手机粘贴板内赋值, https://github.com/majido/clipper

共收到 2 条回复 时间 点赞

macaca 下的那个输入法,你可以参考下。可以输入中文

—— 来自 TesterHome 官方 安卓客户端

@codeskyblue 好的, 我研究一下,谢谢

萤火虫 关闭了讨论 12月15日 14:33
萤火虫 重新开启了讨论 12月15日 14:35
萤火虫 关闭了讨论 12月15日 14:36
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册