利用一个插件, 可以实现已 adb 命令的方式手机粘贴板内赋值, https://github.com/majido/clipper,之后不知道咋搞了。。。
提升文本框输入速度,可以用这种方式
element = driver.findElement(By.id("com.calculator:id/EditText01"));
element.click();
Process p = Runtime.getRuntime().exec("/path/of/adb -s emulator-8088 shell input text 123456");
对于你提到的这个办法,需要先从剪贴板读取再赋值
// 安装clipper,启动服务
// 发送到剪贴板
Process p = Runtime.getRuntime().exec("adb shell am broadcast -a clipper.set -e text 123456");
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
// 确定剪贴板内容是想要输入的
// 赋值 CTRL+V (event_code 50 KEYCODE_V)
driver.pressKeyCode(50, AndroidKeyMetastate.META_CTRL_ON);
你好,我找到输入框了,然后也知道读取剪切板,然后就没有然后了。。不知道怎么把 get 到的值放到输入框。多谢!
我想循环发消息,想 qq 聊天一样,一直发消息,用 sendkeys 很慢,所以想用 clipper。。
// CTRL+V (event_code 50 KEYCODE_V)
driver.pressKeyCode(50, AndroidKeyMetastate.META_CTRL_ON);
弱弱的问一下,AndroidKeyMetastate.META_CTRL_ON 在 Python+appium 中怎么导入。。
AndroidKeyMetastate 这个在哪儿啊。。。。。
例子是 java 的,,你找找 python 里 ctrl+v 对应的 keycode 值。
在使用 driver.press_keycode(xxx) 就可以了啊。。
我就是不知道 在 Python 中怎么发送有效的 ctrl+v 到 Android 才会生效 。。。臣妾做不到。。。。。
driver.keyevent(xx)
def keyevent(self, keycode, metastate=None):
"""Sends a keycode to the device. Android only. Possible keycodes can be
found in http://developer.android.com/reference/android/view/KeyEvent.html.
:Args:
- keycode - the keycode to be sent to the device
- metastate - meta information about the keycode being sent
"""
直接 set 值不能满足需求吗
python 里的粘贴功能:self.driver.press_keycode(50,28672)
先在输入框点击一下,把光标定位到输入框, 最后再发送粘贴命令, 这个对输入法也有要求,某些中文输入法不行的.
这个平台真好,提问就有好心人解答,谢谢各位!
执行 os.system("adb shell input text 123456") 呢?