モンキーランナーとAndroidViewClientを使用して、Androidタブレットのクリックをシミュレートしようとしています。特定のテキストがあるリージョン/ビューをクリックしたい。これが私がやろうとしていることの例です:
MonkeyRunner、MonkeyDevice、ViewClientをインポートするスクリプトがあります
from com.dtmilano.android.viewclient import ViewClient
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
タブレットを接続し、MonkeyDeviceオブジェクトを作成します
device = MonkeyDevice.waitForConnection()
次に、デバイスを使用してAndroidViewClientオブジェクトを作成します
vc = ViewClient(device)
タブレットで設定アプリを開きます
device.startActivity('com.android.settings/.Settings')
次に、次を使用して目的のビューを見つけます。
displayView = findViewWithAttribute('text:mText', 'Display')
次に、そのビューをクリックしてみます(タッチイベントをシミュレートします)。
displayView.touch()
問題は、このスクリプトが画面の別の部分、つまり設定アプリのWiFi回線の左側のどこかに触れていることです。
ViewClientのソースコードを調べたところ、touch()メソッドがビューの(x、y)座標を返し、MonkeyDevice.touch()メソッドを使用していることがわかりました。ただし、返される(x、y)座標は、ビューの親を基準にしています。
ビューオブジェクトの正しい(x、y)座標を取得する方法を知っている人はいますか?
または、少なくともビューの親を取得する方法。