Appium+python自動化8-輸入中文

前言   web

    在作app自動化過程當中會踩不少坑,我們都是用的中文的app,因此首先要解決中文輸入的問題! 

    本篇經過屏蔽軟鍵盤,繞過手機的軟鍵盤方法,解決中文輸入問題。app

1、定位搜索工具

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

    2.而後定位到搜索框後用sendkeys方法輸入「hao」,這裏定位元素用第四篇講的uiautomatorviewer工具就能夠了ui

    3.腳本以下圖(公衆號版權全部:軟件測試部落)編碼

2、運行腳本spa

    1.首先要確認手機上的輸入法是用的什麼輸入法,若是默認是中文的輸入法,啓動後會出現下面狀況,沒法輸入成功3d

    2.因而能夠先把手機上的輸入法改爲英文的狀態,這樣就能夠輸入英文字符串了。那麼問題來了,若是想輸入中文的字符串呢?如何解決。。。code



3、屏蔽軟鍵盤orm

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

    2.因而能夠想辦法屏蔽軟鍵盤,只需在desired_caps{}設置裏面加兩個參數(敲黑板,記重點!)

 

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

    4.resetKeyboard是將鍵盤隱藏起來(公衆號版權全部:軟件測試部落)



4、輸入中文字符

    1.將上面代碼改爲輸入中文u「測試部落」,而後運行腳本,在手機上查看結果。(中文前面要加個u)

    2.運行後手機上顯示以下

3.若是顯示中文字符爲亂碼時:

前面加上「#--coding:gb18030--」 以下圖所示:


5、還原設置

    1.當運行上面的腳本後,發現手動去輸入時候,沒法調出軟鍵盤了,如何恢復呢?(公衆號版權全部:軟件測試部落)

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

 

6、最終腳本以下

# coding=utf-8

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"yoyoketang")

相關文章
相關標籤/搜索