2011-02-25 2 views
1

私はMonkeyrunnerスクリプト環境を調べて、さまざまなイベントをテストして、自分のアプリを適切にシミュレートできることを確認しています。具体的には、「ドラッグ」機能で使用される座標について質問があります。Monkeyrunner "drag"コマンドで不正な座標が使用されていますか?これはバグですか?

Monkeyrunnerが接続されていてもアプリが実行されていない(ホーム画面に座っている)場合、次のコマンドを入力すると左右の「スワイプ」イベントが模倣され、1つのホーム画面が左に移動します。

device.drag((100,400),(500,400),0.15,5) 

これは美しく機能します。

このコマンドは、それから...反対方向に

device.drag((500,400),(100,400),0.15,5) 

をスワイプを生成する必要があります...しかし、それはしていません。

しかし、これはありません:

device.drag((400,400),(100,400),0.15,5) 

さらにこれをテストするには、私は"MagicMarker"アプリをダウンロード。このようにして、私はこれらの異なるタッチイベントがどこに発生しているのか正確に見ることができます。明らかに私は自分のアプリを使用していない限りスクリーンショットを撮ることはできませんので、私がここで何を見ているのかを記述するだけです。うまくいけば、これを確認するか、私が逃しているステップを教えてください。

device.drag((100,400),(500,400),0.15,5) 

このコマンドは、... ...私の画面の真ん中を越え、左から右に水平線を描画します。それはまさにモトローラのドロイドの画面に集中しています。両方のエンドポイントはどちらかの端に余裕を持って明瞭に見えます。 (右から左)反対方向に引かれ、同じラインであるべきである

このコマンド...

device.drag((500,400),(100,400),0.15,5) 

...、右に100pxにすることによってオフセットラインを描きます。最初の終点は、画面の端にあるか、または完全にオフスクリーンになっています。私は言うことができません。

私が困惑しているのは、座標が一貫していないように見えることです。ポイント(500,400)は画面の垂直中心にあり、左右のドラッグ移動でエンドポイントとして使用された場合は右側に少しずれていますが、右端の開始点として使用されている場合は完全にオフスクリーンに見えますドラッグ移動。

Monkeyrunner環境のバグかもしれません。思考?

答えて

4

ここに2つのバグがあります。 OneはMonkeyRunnerに、もう1つはコード内にあります。 Nexus Sでテストしています。画面サイズは480x800です。 Driodは、私はこのようにそれを確認し、そのサイズにかなり近いです:

print device.getProperty('display.width'), device.getProperty('display.height') 

あなたは右にドラッグしているときに、(X = 500で)あなたの最後のセグメントは、画面の端から離れています。ドラッグの終わりにフレームワークがその「アップ」イベントを取得すると、それは正常に回復するようです。

右にドラッグすると、最初のセグメントがフレームワークから外れてしまいますが、フレームワークはそのフレームワークが好きではありません。画面に「オフ」イベントが表示されているので、ドラッグを完​​了するすべての移動イベントがドロップされます。

これは動作するはずのようにあなたはドラッグ操作:

device.drag((100,400),(400,400),0.15,5) 
time.sleep(0.5) 
device.drag((400,400),(100,400),0.15,5)

MonkeyRunnerのバグは、それはあなたのドラッグコマンドの最後のセクションを落としたということです。だから、それは画面上のドラッグを終了したように見えたが、実際にはなかった。これに対する修正はここにあります:https://review.source.android.com/21635

+0

詳細な回答ありがとうございます!自分の画面の解像度がどうだったか分からないため、私は自分を蹴飛ばす。 – Glenn

関連する問題