0

モンキーランナーと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)座標を取得する方法を知っている人はいますか?
または、少なくともビューの親を取得する方法。

4

1 に答える 1

0

問題が解決しました。AndroidViewClientの最新バージョンは、ビューに関する私の問題を解決します。

使うことができます:

view = vc.findViewWithText('Dsiplay')
view.touch()
于 2012-09-21T12:35:20.687 に答える