Appium appium 调用 webdriver 中 send_keys 发送汉字可以吗?怎么解决?

dabao · 2013年12月18日 · 最后由 Moon 回复于 2016年07月15日 · 78 次阅读

appium 调用 webdriver 中 send_keys 发送汉字可以吗?怎么解决?

公司最近用 appium 做手机自动化测试框架,发现 send_keys 不能发送汉字啊,decode 了也不行

论坛里的兄弟姐妹们有啥好法子吗?


"验证是否存在搜索更多书籍输入框。。。"
btn_center_find_book = driver.find_element_by_text('搜索更多书籍')
assertTrue(btn_center_find_book)
time.sleep(2)

btn_center_find_book.click()
time.sleep(2)

text = "奇术色医"
btn_center_find_book.send_keys(text.decode()) #这个搞不定
time.sleep(5)

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 10 条回复 时间 点赞

顶一下啊,我也遇到这问题了,求解决。

#1 楼 @zws20041984 论坛早就解决了, 搜索下以前的帖子吧.

#2 楼 @seveniruby 但是需要具体的代码啊=。=

#3 楼 @spikeshen 恩, 目前只是有了方法. 需要为 appium 增加方法. 目前我正在熟悉他们的测试体系.还不敢贸然提交, 估计要等到春节后试试. 你可以先用 utf7ime

ios 可以。 Android 还不行

#5 楼 @lihuazhang 这个 ios 可以的方式怎么解决的?谢谢!

#5 楼 @lihuazhang ios 直接使用 send_keys() 也可以输入中文 但是 appium 现在不支持 setValue() 吧

#8 楼 @kyotokyoking iOS 还是支持的。

java client 的 mapping

...
String SET_VALUE = "setValue";
...
...
 .put(SET_VALUE, postC("/session/:sessionId/appium/element/:id/value"))

appium server 端的

rest.post('/wd/hub/session/:sessionId?/appium/element/:elementId?/value', controller.setValueImmediate);

iOSController.setValueImmediate = function (elementId, value, cb) {
  value = escapeSpecialChars(value, "'");
  var command = ["au.getElement('", elementId, "').setValue('", value, "')"].join('');
  this.proxy(command, cb);
};

androidController.setValueImmediate = function (elementId, value, cb) {
  cb(new NotYetImplementedError(), null);
};

def setUp(self):
    self.driver = webdriver.Remote(
        command_executor='http://127.0.0.1:4723/wd/hub',
        desired_capabilities={
            'appPackage':'com.jiyu.business',
            'appActivity':'com.jiyu.business.ui.main.EngineStartSplashActivity',
            'platformName': 'Android',
            'platformVersion': '4.4.2',
            'deviceName': '022SSE146E003610',
            'unicodeKeyboard':True,
        })

unicodeKeyboard 会调用 appium 键盘,自动化执行时则不弹出软键盘,适用于安卓。IOS 则不需要这样就可以输入中文

Moon [该话题已被删除] 中提及了此贴 07月15日 09:51
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册