zoukankan      html  css  js  c++  java
  • NO.1 appium-关于输入法

    最近打算详细看一下appium的API。今天闲来无事,迈开了这条道路的第一步,打开文档后,映入眼帘的第一个API是关于激活输入法的,那么就从这里开始吧。希望我这些文章能帮到跟我一样的小白们,当需要使用appium的时候不至于一脸懵逼的不知所措。

    好嘞~上菜!!!

    1.  available_ime_engines

    Get the available input methods for an Android device. Package and
    activity are returned (e.g., ['com.android.inputmethod.latin/.LatinIME'])
    Android only.

    好吧,上面是我直接从API里拷出来的,我英文也不好只能借助百度翻译,这个API的大概意思是:这是一个安卓的方法,获取当前设备可用的输入法。

     

    那么我们先来看一下,我手机里有几种输入法

    通过手机的输入法设置看到了,目前手机上可用的输入有3种,‘谷歌’、‘百度’、‘appium自带’。实验一下

    a = driver.available_ime_engines
    print(a)
    通过运行之后发现,appium给我返回了一个列表:

    好吧,可能看不太懂,但是挑关键词分析一下,确实对应的是三个输入法‘com.baidu’、‘com.google’、‘io.aapium’

     

    2.activate_ime_engine(self, engine)

    Activates the given IME engine on the device.
    Android only.
    :Args:
     - engine - the package and activity of the IME engine to activate (e.g.,
        'com.android.inputmethod.latin/.LatinIME')

    也是从API直接拷贝过来的,这次还算贴心的给了一个例子,这个API的大概意思是:这是一个安卓的方法,激活输入法。

    那我们就把刚刚获得的三个输入法,分别实验一下,首先是百度

    driver.activate_ime_engine('io.appium.android.ime/.UnicodeIME')
    driver.find_element_by_id("输入框").click()
    driver.find_element_by_id("输入框").set_text('tt')

    从红圈处可以明显的看出来,启动的就是百度的输入法没有错。

     

     

    接下来是谷歌

    driver.activate_ime_engine('com.google.android.inputmethod.pinyin/.PinyinIME')
    driver.find_element_by_id("输入框").click()
    driver.find_element_by_id("输入框").set_text('tt')

    从红圈处标志性的网格球可以看出,启动的就是谷歌的输入法。

     

    最后是appium的输入法

    driver.activate_ime_engine('io.appium.android.ime/.UnicodeIME')
    driver.find_element_by_id("输入框").click()
    driver.find_element_by_id("输入框").set_text('123')

    不用懵逼,appium的输入法就是没有界面。

    其实大可不必这么麻烦,在执行过 driver.activate_ime_engine() 之后,“手机设置->输入法设置->当前输入法”,就已显示所设置的输入法了,可以自己试试看。

     

    3.active_ime_engine

    Returns the activity and package of the currently active IME engine (e.g.,'com.android.inputmethod.latin/.LatinIME').

    Android only.

    这个API的大概意思是:这是一个安卓方法,获取当前输入法的包名和Activity

     


    使用一下看看结果:

    输入代码

    driver.activate_ime_engine('io.appium.android.ime/.UnicodeIME')
    a = driver.active_ime_engine
    print('当前输入法是:'+a)
    输出结果

    输入代码

    driver.activate_ime_engine('com.google.android.inputmethod.pinyin/.PinyinIME')
    a = driver.active_ime_engine
    print('当前输入法是:'+a)
    输出结果

    输入代码

    driver.activate_ime_engine('com.baidu.input_miv6/.ImeService')
    a = driver.active_ime_engine
    print('当前输入法是:'+a)
    输出结果

    
    

     

    4.deactivate_ime_engine(self)

    Deactivates the currently active IME engine on the device.
    Android only.

    这个API的大概意思是:这是一个安卓方法,关闭当前的输入法

     


    我一脸懵逼的发现,当我使用这个方法,关闭了某个输入法后,在“手机设置->输入法设置->当前输入法”中,也看不到这个被关闭的输入法了。

    原本的输入法是这样的三个

    执行代码

    a = driver.active_ime_engine
    print('当前输入法是:'+a)
    driver.deactivate_ime_engine()
    输出结果





    百度输入法,没了~~~~~~~~
    依次尝试之后发现,是可以将所有输入法依次‘变’没的。但也不用担心,通过
    available_ime_engines 和 activate_ime_engine,仍然可以设置输入法,被激活的输入法在设置中也会变得重新可见。


    5.is_ime_active(self)
    Checks whether the device has IME service active. Returns True/False.
    Android only.
    这个API的大概意思是:这是一个安卓方法,
    检查是否有输入法被启用,返回True/False.


    执行代码
    a = driver.is_ime_active()

    print(a)
    输出结果:True
    尝试了几下,暂时不知道怎么才能输出False。感觉这个API也没啥大用,就不去纠结了。



    6.hide_keyboard(self, key_name=None, key=None, strategy=None)
    Hides the software keyboard on the device. In iOS, use `key_name` to press
    a particular key, or `strategy`. In Android, no parameters are used.
    这个API的大概意思是:隐藏键盘(吧啦吧啦的说了一下iOS和安卓的用法不一样,在下不用iOS就不罗嗦了)

    执行代码

    driver.activate_ime_engine('com.baidu.input_miv6/.ImeService')

    driver.find_element_by_id("输入框").click()
    sleep(5)
    driver.hide_keyboard()

    输出结果



    可以看到指定的百度输入法,再点击输入框后调起显示,然后被隐藏

    四不四执行完hide_keyboard()之后,在需要输入的操作时‘百度输入法’就会变得跟‘appium输入法’一样不弹出界面,专心的闷头干活了呢?

     

    执行代码

     

    driver.activate_ime_engine('com.baidu.input_miv6/.ImeService')

     

    driver.find_element_by_id("输入框").click()
    sleep(5)
    driver.hide_keyboard()

    driver.find_element_by_id("输入框").click()

    输出结果

     


    然而并没有闷头干活~~还是显示出来了。

    看来这个API不是让输入法闷头干活,而是在输入完内容后收起键盘,让‘输入法’遮挡的按钮可以被点击。


    菜齐了!
    
    
  • 相关阅读:
    测试面试题
    订单怎么测试?(主要测试订单的状态变化)
    还款功能怎么测试?
    登录功能怎么测试?
    apache配置详解与实践
    apache的安装
    linux系统优化(关闭SElinux、防火墙)
    linux网络配置
    linux的日志管理
    python的xlwt模块
  • 原文地址:https://www.cnblogs.com/dianxiao2/p/5520794.html
Copyright © 2011-2022 走看看