pycharm中使用MUMU模拟器执行测试用例无法输入中文

问题描述:

pycharm中执行测试用例,setup中设置desire_cap中添加了"unicodeKeyBoard": True,“resetKeyBoard”: True,但执行元素send_keys时无法录入中文。

  • 环境:pycharm2020 + appium-python-client1.0.1+pytest+mumu模拟器2.3.9
  • 移动端型号:mumu模拟器2.3.9
  • 移动端系统:Android 6.0.1
  • 问题复述:pycharm中执行测试用例,setup中设置desire_cap中添加了"unicodeKeyBoard": True,“resetKeyBoard”: True,但执行元素send_keys时无法录入中文。

相关log文件

直接将后缀名为.log的文件拖入输入框即可

相关代码(包括log文件,都要使用markdown代码格式,)

from appium import webdriver
import pytest

class TestXueqiu():
    def setup(self):
        desire_cap = {
            "platformName": "Android",
            "platformVersion": "6.0.1",
            "deviceName": "127.0.0.1:7555",
            "appPackage": "com.xueqiu.android",
            "appActivity": "com.xueqiu.android.view.WelcomeActivityAlias",
            "noReset": True,
            "dontStopAppReset": True,
            "skipDeviceInitialization": True,
            # "automationName": "uiautomator2"
            "unicodeKeyBoard": True,
            "resetKeyBoard": True
        }

        self.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desire_cap)
        self.driver.implicitly_wait(20)

    def teardown(self):
        self.driver.back()
        self.driver.back()
        self.driver.quit()

    def test_demo1(self):
        print("搜索测试用例")
        '''
        1.打开 雪球
        2.点击搜索输入框
        3.向输入框中输入“阿里巴巴”,然后进行点击
        4.获取这只香港 阿里巴巴的股价,并判断这只股份的价格>200
        '''
        # 搜索框元素
        el1 = self.driver.find_element_by_id("com.xueqiu.android:id/tv_search")
        el1.click()
        #输入阿里巴巴
        el2 = self.driver.find_element_by_id("com.xueqiu.android:id/search_input_text")
        el2.send_keys("阿里巴巴")
        el3 = self.driver.find_element_by_xpath("//*[@resource-id='com.xueqiu.android:id/name' and @text='阿里巴巴']")
        el3.click()
        el4 = self.driver.find_element_by_id("com.xueqiu.android:id/current_price")
        assert float(el4.text) > 200

if __name__ == '__main__':
    pytest.main()

报错信息:


如果把el2.send_keys(“阿里巴巴”)改成el2.send_keys(“alibaba”)就是正常的,如下:

原因以及解决方式(没有可以写无):

原因:

解决办法:无

  • 参数一个也没加 就用最基本的参数我这也可以输入中文
  • 1.17.1版本的appium 也是木木模拟器
  • 复制了你的代码也可以正常运行
  • 我的雪球apk是新版本的,所以搜索框的id变了是home_search
  • 建议你把中文输入不成功的appium日志文件传上来看看,分析一下

# Author:Pegasus-Yang
# Time:2020/6/27 16:20
from time import sleep

from appium import webdriver
from appium.webdriver.common.mobileby import MobileBy


def test_a():
    cap = {
        'platformName': 'Android',
        'deviceName': '6',
        'appPackage': 'com.xueqiu.android',
        'appActivity': '.view.WelcomeActivityAlias',
    }

    driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', cap)
    driver.implicitly_wait(20)
    driver.find_element(MobileBy.XPATH, '//*[@text="同意"]').click()
    driver.find_element(MobileBy.XPATH, '//*[contains(@resource-id,"home_search")]').click()
    driver.find_element(MobileBy.ID, 'search_input_text').send_keys('阿里巴巴')
    sleep(20)
    driver.quit()

看下你的输入法是不是被修改为appium的输入法了,检查下输入法的设置

按你的代码跑了没问题。可能真的需要检查下配置了。

感谢回复,以下添加了Log文件。另外,我的appium是1.9.1的版本。
appium_pycharm_log.txt (19.0 KB)

感谢回复:
检查了没有被修改为appium的输入法
image

谢谢回复,我也觉得应该是配置有问题,怀疑是不是appium版本问题,目前版本是1.9.1

不是要pycharm里的log,是要appium server的log
另外你这个1.9版本是低了点 建议升级到1.15再试试

哦,不过Log我先不贴了,先升级后看能否解决。

感谢各位老师,问题已经解决,是版本低导致的。