Appium 1.3.3 以上。
java:
capabilities 增加下面两项:
capabilities.setCapability("unicodeKeyboard", "True");
capabilities.setCapability("resetKeyboard", "True");
python:
desired_caps["unicodeKeyboard"] = "True"
desired_caps["resetKeyboard"] = "True"
有看到这个参数,但是没注意..原来是支持中文输入了啊。CHANGELOG 也没看出这意思...←_←
虽然支持中文,但是中文输入不会触发点击的事件,导致输入框的内容是直接 send 过去的,会让一些输入框输入之后,点击不了发送
不管怎么样,个人觉得此贴应该加精,解决了我的大问题
@wangcityboy @woshizh 有发送按钮的话怎么会无法点击发送。我特意拿手机百度这个 app 测试了搜索功能。
@xuxu @wangcityboy 我没有碰到这个问题。。可能我们是把数据都放在 excel 里面,然后直接调用 excel
#6 楼 @wangcityboy 你点它一下不就完了
赞!!但我后来看了 api 发现 MobileElement 中的 setvalue 可以直接设置中文(仅限于 native 的应用),只要将 driver 设置为 IOSDriver 或者 AndroidDriver,然后将找到的控件强转为 MobileElement,就可以使用 setvalue 直接设置中文了!我觉得这个方法比较好,不知道大家怎么看!
Appium1.3.3 之前,自行安装输入法(安装如 D:\AppiumForWindows\Appium\node_modules\appium\build\unicode_ime_apk\UnicodeIME-debug.apk)并设置为默认输入法就可以输入中文。
Appium1.3.3 后,只是增加了支持自动切换到上述输入法:
capabilities.setCapability("unicodeKeyboard", "True");
using a specialized keyboard that allows the text to be passed as ASCII text between Appium and the application being tested.
配置为 true,会自动使用输入法 Appium Android Input Manager for Unicode, 必须要有这个配置才能支持输入中文。
capabilities.setCapability("unicodeKeyboard", "True");
return the keyboard to its original state.without this capability,Unicode keyboard will remain enabled on the device after the tests are completed.
自定义是否还原输入法。
die, 可行,目前是没发现有啥问题。
#6 楼 @wangcityboy 这个你知道怎么解决吗????
@anikikun @wangcityboy @xuxu 我在代码里面加入了 desired_caps["unicodeKeyboard"] = "True"
desired_caps["resetKeyboard"] = "True",但是在执行 textfields = self.driver.find_elements_by_class_name("android.widget.EditText")
textfields[0].send_keys("李大宝"),还是无法输入 “李大宝”,默认输入法是搜狗输入法,代码是在 samplecode 中的 android_contacts.py 直接修改的,请指教
@yuwuhen333 版本是否支持?另外运行脚本后,看手机里面能否找到 appium 自带的输入法
@yuwuhen333 编码问题。中文字符加个 u,textfields[0].send_keys(u"李大宝")
@yuwuhen333
可能有點晚了,抱歉
沒看錯的話,應該是這行
capabilities.setCapability("unicodeKeyboard", "True");
看log的時候看到的
很抱歉,log來不及複製,回頭再看已經消失
有設定該行,sendKeys就可以使用,會直接貼上輸入值
但是沒有相對應的鍵盤畫面,之後如果追加一下鍵盤相關命令,會出狀況
我的情況是沒有做之後的命令,直接結束用例
---
額外
將 element 設定成 MobileElement 後,我並沒有找到 setValue
MobileCommand 裡頭是有,但是不會用,放棄
嘗試將 element 設定成 AndroidElement 後,看到 replaceValue 也可以用來傳遞輸入值
可是兩者都後面不知道是不是因為沒有鍵盤的關係,在想定的畫面出現前就結束用例
@wkx101 请问下如果我初始化时不加这 2 句还有其他办法可以实现吗,我按照 11 楼的做法手动在手机安装了 appium 输入法,但还是没法输入中文!也试过 send_keys("中文".encode('utf7')) 这样也是没输入中文的效果
@reters
這點我不清楚,上面的回復到現在,我並沒有去看過源碼。是否有其他方法實現中文輸入,要問其他大牛
我上頭的回覆只有我的用例執行後實際情況,而且我並沒有按照 11 樓的作法,我的 Appium 版本是 1.4.16,好像是會默認安裝到手機上。(印象中版上有個關於 Appium 對 Android 系統的默認安裝詢問,可以去看一下)
再來,我做測試的兩種系統 iOS 跟 Android,其中只有 Android 需要安裝輸入法。iOS 可以直接輸入中文。
非常棒!
刚好在找 python 版本的写法,谢谢
求救啊,设置了这两个
capabilities.setCapability("unicodeKeyboard", "True");
capabilities.setCapability("resetKeyboard", "True");
但是 sendKeys 中文,编辑框没反应,输入不了,,数字英文就可以输入
请教一下群主 有没有什么群 或者视频教程 能教教我怎么在 mac 上把 ios app 跑起来呢 跪求
使用这个输入法输入数字时,会出现随机对数字重复输入的情况。ps:输入前拿到的数字是正常的,输入法输入时就出错了
您好,我设置了这个输入法之后,每次使用 OPPO R9S 手机跑用例的时候,都会提示安装一遍 “Appium Android Input Manager Unicode”,请问如何才能禁止安装这个呢,因为手机上面其实已经是安装了的。