私物の端末に Android 10 が来ていたので、反射的にアップグレードして Airtest が動かなくなってしまったのですが、助かりました。
ただし、普通に connect した場合におそらく minitouch の Permission denined error が発生すると思います。
[07:11:37][DEBUG]C:\Python27amd64\lib\site-packages\airtest\core\android\static\adb\windows\adb.exe -s BH900FPXD1 shell /data/local/tmp/minitouch -n 'minitouch_19717' 2>&1 [07:11:37][DEBUG] [minitouch_server]'open: Permission denied' [07:11:37][DEBUG] [minitouch_server]'Unable to open device /dev/input/event8 for inspectionopen: Permission denied' [07:11:37][DEBUG] [minitouch_server]'Unable to open device /dev/input/event7 for inspectionopen: Permission denied' [07:11:37][DEBUG] [minitouch_server]'Unable to open device /dev/input/event6 for inspectionopen: Permission denied' [07:11:37][DEBUG] [minitouch_server]'Unable to open device /dev/input/event5 for inspectionopen: Permission denied' [07:11:37][DEBUG] [minitouch_server]'Unable to open device /dev/input/event4 for inspectionopen: Permission denied' [07:11:37][DEBUG] [minitouch_server]'Unable to open device /dev/input/event3 for inspectionopen: Permission denied' [07:11:37][DEBUG] [minitouch_server]'Unable to open device /dev/input/event0 for inspectionopen: Permission denied' [07:11:37][DEBUG] [minitouch_server]'Unable to open device /dev/input/event2 for inspectionopen: Permission denied' [07:11:37][DEBUG] [minitouch_server]'Unable to open device /dev/input/mice for inspectionopen: Permission denied' [07:11:37][DEBUG] [minitouch_server]'Unable to open device /dev/input/event1 for inspectionUnable to find a suitable touch device'
これの対応に1ステップ必要なので紹介します。
IDE の場合
最新バージョンに更新するのはもちろんですが、 ADB connect のオプションを変える必要があります。スクリプトの場合
実行する python 環境にインストールされている airtest を更新します。pip install -U airtest
続いて、スクリプトファイルの auto_setup 後に device の touch_method を ADBTOUCH に変更します。
from airtest.core.api import * from airtest.core.android import * auto_setup(__file__) dev = device() if isinstance(dev, Android): dev.touch_method ="ADBTOUCH"
auto_setup(__file__, ["Android:///?touch_method=ADBTOUCH"])
でも touch_method を指定可能ですが、
IDE のスタートボタンから実行した場合は、auto_setup の時点でデバイスのセットアップ済みのため、
auto_setup で指定した touch_method に切り替わりません。
IDE のスタートボタンから実行した場合は、auto_setup の時点でデバイスのセットアップ済みのため、
auto_setup で指定した touch_method に切り替わりません。
なので、接続中のデバイスが「Android」だったら touch_method を上書きするようにしています。
この書き方であればスクリプト単体実行と IDE からの実行両方で動作します。
この書き方であればスクリプト単体実行と IDE からの実行両方で動作します。
公式ドキュメントだと微妙に名前が違ったりしてハマりましたが、ソースコード解析してなんとか解決できました。。
今回は以上です。では。
0 件のコメント:
コメントを投稿