app自動化テスト4---desired capabilities


Capabilities
Capabilitiesとは何ですか?Desired Capabilitiesはキー値ペアの組み合わせで、Pythonの中に辞書があります.クライアントはこれらのキー値ペアをappiumサーバに送信し、サーバにテスト方法を教えます.
desired Capabilitiesの例:
desired_caps = {}  #  
desired_caps['platformName'] = "Android"       #     ,            
desired_caps['platformVersion'] = '22'         #        
desired_caps['deviceName'] = "7N3HPX159H051514" #              ,adb devices  
desired_caps['udid'] = "7N3HPX159H051514"       #  
#  web       
desired_caps['browserName'] = ''  #          web   , APP            。Chrome、Browser、Chromlum
'''
     ,                ,            activity  
desired_caps['app'] = r'D:\test\test.apk' #    APP      
'''
desired_caps['appPackage'] = 'com.thinkwu.live' #APP package uiautomator view appium     
desired_caps['appActivity'] = '.ui.activity.InitActivity'   #   APP     ,appium      


desired_caps['unicodeKeyboard'] = "True"                    #  Unicode  
desired_caps['resetKeyboard'] = "True"
desired_caps['newCommandTimeout'] = 30                      #        ,   


'''    :
    appium    h5     :
desired_caps['chromeOptions'] = {'androidProcess': 'com.tencent.mm:tools'}
'''
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)

よく使われるCapabilities共通、Android専用、iOS専用のCapabilities:http://blog.csdn.net/jojoy_tester/article/details/72081905
Capabilitiesパッケージは、関数パッケージを使用して複数回呼び出すことができ、パラメータを変更すると何度もフィットします.
アプリの変化、携帯電話の変化、バージョンの変化などをテストするには、プログラムのコードを修正する必要があります.カプセル化した後、異なる需要を使って適切なパラメータを入力すれば、直接使用することができます.
Capabilitiesパッケージの使用例:
関数パッケージです...
from appium import webdriver

def driver_app(platformVersion='23',deviceName='7N3HPX159H051514',udid='7N3HPX159H051514'):
    desire_caps = {}
    desire_caps['platformName'] = "Android"
    desire_caps['platformVersion'] = platformVersion
    desire_caps['deviceName'] = deviceName
    desire_caps['udid'] = udid
    desire_caps['appPackage'] = 'com.thinkwu.live'
    desire_caps['appActivity'] = '.ui.activity.InitActivity'
    desire_caps['unicodeKeyboard'] = "True" #    Unicode  
    desire_caps['resetKeyboard'] = "True"
    driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub",desire_caps)
    return driver
if __name__ == "__main__":
    driver = driver_app(platformVersion="22")

Unicodeキーボード設定
テキストボックス(TextField)
アンドロイドの自動化では、desired Capabilitiesには次の2つの設定があります.
    desire_caps['unicodeKeyboard'] = "True"
    desire_caps['resetKeyboard'] = "True"

***
デフォルトでは、iOSとAndroidの自動化ツール(携帯電話、シミュレータ)では、入力ボックスにASCII以外の文字を入力することはサポートされていません.
iOSは先に研究しません.スキップします.
appiumはこの問題に対して、Android自動化の問題をどのように解決しますか?
ダウンロードして特殊なキーボードをインストールすることで、AndroidはUnicode文字をサポートすることができ、この入力法はASCIIを通じてappiumとテストされたアプリケーションの間でテキストを同行させることができる.
設定する必要があります.
unicodeKeyBoardはTrueに設定されています.キーボード設定をテスト完了後に元の状態に戻すには、resetKeyBoardもTrueに設定する必要があります.そうしないと、appiumテストが終了してもappiumのUnicodeキーボードがアクティブになります.
設定するとsend_keys()メソッドは入力ボックスにUnicode文字を入力しました.
コメント:
このUnicodeキーボードは仮想キーボードではなく、インタフェースには表示されません.他のタイプのテストを行うには、他の入力方式に戻す必要があります.
総じて、desired Capabilitiesに次の2つの設定を追加します.