新手区 Appium appium1.6.5 使用 set_value () 输入中文,真机上无显示

程文平 · 2017年09月20日 · 最后由 simple 回复于 2017年09月22日 · 2369 次阅读

环境:
Python3.5+appium1.6.5+uiautomator2+selenium3.0.1.
用 send_value () 输入到 app 的文本输入框中。case 执行结果 ok。app 上输入框中没有输入任何内容。请教各位大神这是怎么回事?

case 为:
My_driver.find_element_by_id("xxxxx").set_value("登录账号")

desired_caps 配置:

desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '4.2'
desired_caps['deviceName'] = 'LGD728d371b469'
desired_caps['appPackage'] = 'xxxxxxx'
desired_caps['appActivity'] = 'xxxxxx'
desired_caps['noSign'] = True
desired_caps['noReset'] = True
desired_caps['resetKeyboard'] = True
desired_caps['unicodeKeyboard'] = True
desired_caps['automationName'] = uiautomator2

尝试,将 automationname 一项去掉,运行 case,app 端输入的中文显示正常。

共收到 4 条回复 时间 点赞

没人遇到过吗?急

用 input_text
另外 caps 参数加上 unicodeKeyboard=true

water 回复

caps 里面已经添加了。

问题原因找到了。手机的 api 小于 20,20 以上就正常了。小于 20 怎么处理,还没有找到方案

试试这个:
除了上面提到的锁输入法外,我们这么做的:

WebElement elem = driver.findElement(By.id(id));
//elem.sendKeys(val); 无法输入
elem.click();
Runtime.getRuntime().exec("adb -s "+ Phone_Name+" shell input text "+val);
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册