2016-09-01 6 views
0

現在、Androidデバイスの設定を自動化するためにbashとadbを使用しています。 1つのデバイスでコードを実行すると、 'adbシェル入力タップxxx xxx'コマンドは100%正確であり、その仕事はうまくいっています。複数のデバイスで実行するとadbシェル入力コマンドが変更される

複数のデバイスでスクリプトを実行すると、座標が変わっているように見えます。デバイスは、画面上の一見ランダムな場所で、新しい場所を再割り当てしたように、クリックを開始します。

論理的には、ここで何が起こっている可能性がありますか?スクリプトの関連部分は次のとおりです。

DeviceConfig() { 

     #Location 
     ./adb -s "$usb" shell am start -n com.android.settings/.Settings 
     ./adb -s "$usb" shell input tap 215 695 
     ./adb -s "$usb" shell input tap 1210 55 
     #Icons 
     ./adb -s "$usb" shell am start -n com.estrongs.android.pop/.view.FileExplorerActivity 
     sleep 7 
     ./adb -s "$usb" shell input tap 165 500 
     ./adb -s "$usb" shell input tap 165 500 
     ./adb -s "$usb" shell input tap 165 500 
     ./adb -s "$usb" shell input tap 165 500 
     sleep 1 
     ./adb -s "$usb" shell input tap 155 150 
     sleep 1 
     ./adb -s "$usb" shell input tap 155 374 
     sleep 1 
     ./adb -s "$usb" shell input swipe 680 130 680 130 1500 
     sleep 1 
     ./adb -s "$usb" shell input tap 920 130 
     sleep 1 
     ./adb -s "$usb" shell input tap 1185 723 
     sleep 1 

} 

for usb in $(./adb devices -l | awk '/ device usb:/{print $3}'); do DeviceConfig $usb ; done 
+1

アクティビティを開始するときに、後で固定遅延を挿入するのではなく、「am start -W」を使用する –

答えて

1

ここでは、同じデバイスについて話しているとします。

デバイスが水平面の上に横たわっているだけの場合、デバイスの中には座標を斜めにする異なる表示方向モードになるものがあります。

オートメーションを実行する前に、すべてのデバイスが同じ位置にあることを確認するか、固定方向に設定することができます。それとももっと良い方法ですか?エミュレートされたタッチの絶対座標の使用をやめてください。

+0

Appiumの外に、私が好きな場所を指し示すオプションがありますか?クリックスルー、XMLスクリーンショットなど? – jagdpanzer

+0

現在のUI階層をダンプするために 'adb shell uiautomator dump'を使用する –

+0

http://stackoverflow.com/q/26586685/1778421 –

関連する問題