python+appium+中文輸入

    在做app自動化過程中會踩很多坑,咱們都是用中文的app,所以首先要解決中文輸入的問題!本篇通過屏蔽軟鍵盤,繞過手機的軟鍵盤方法,解決中文輸入問題。

一、定位搜索

    1.打開淘寶點擊搜索按鈕,進入搜索頁面

    2.然後定位到搜索框後用sendkeys方法輸入“hao”,這裏定位元素用上一篇所說的就能搞定

    3.腳本如下圖

    

 

二、運行腳本        

    1.首先要確認手機上的輸入法是用什麼輸入法,如果默認是中文的輸入法,啓動後會出現下面的情況,無法輸入成功(手機截得圖,可能美觀度不太好~)

    

 

    2.於是可以先把手機上的輸入法改成英文的狀態,這樣就可以輸入英文字符串了。那麼問題來了,如果想輸入中文的字符串呢?如何解決。。。

三、屏蔽軟鍵盤

    1.通過前面的操作,大概可以知道,在app裏面輸入字符串是調用軟鍵盤輸入的,有沒有辦法像selenium做web自動化時候一樣,直接sendkeys繞過鍵盤輸入呢?

    2.於是可以想辦法屏蔽軟鍵盤,只需在desired_caps{}設置裏面加上兩個參數

    

 

    3.unicodeKeyboard是使用unicode編碼方式發送字符串

    4.resetKeyboard是將鍵盤隱藏起來

四、輸入中文字符

    1.將上面代碼改成輸入中文u'大保健',然後運行腳本,在手機上查看結果。

    

    2.運行後手機淘寶搜索框會出現“大保健”中文。

五、還原設置

    1.當運行上面的腳本後,發現手動去輸入的時候,無法調出軟鍵盤,如何恢復呢?

    2.打開手機設置,找到輸入法設置選項,會發現默認的輸入法被改成appium的輸入法了。所以只需要把這裏的設置,改成原來的輸入法就OK

    

六、最終腳本如下

from appium import webdriver
import time
desired_caps = {
                'platformName': 'Android',
                'deviceName': '30d4e606',
                'platformVersion': '5.0',
                'appPackage': 'com.taobao.taobao',
                'appActivity': 'com.taobao.tao.welcome.Welcome',
                'unicodeKeyboard': True,
                'resetKeyboard': True
                }
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
# 休眠五秒等待頁面加載完成
time.sleep(5)
driver.find_element_by_id("com.taobao.taobao:id/home_searchedit").click()
time.sleep(2)
driver.find_element_by_id("com.taobao.taobao:id/searchEdit").click()
driver.find_element_by_id("com.taobao.taobao:id/searchEdit").send_keys(u"測試漢字輸入")
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章