問題タブ [androidviewclient]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3645 参照

android - Eclipse/Java を介して logcat 入力を monkeyrunner に送信すると問題が発生する

Android アプリ内のウィジェットを識別し、クリックするとそのプロパティを表示するツールに取り組んでいます。これを正常に実行できるスタンドアロン ツールを作成しましたが、スタンドアロン ツールを最終製品にパッケージ化するために必要な Eclipse プラグインに変換する際に問題が発生しています。

ツールが動作する方法は、最初に透過オーバーレイ アプリケーションがエミュレータ上で実行されることです。このアプリケーションは、ユーザーが画面を押した座標を収集し、Android ログに書き込みます。次に、テスト対象のアプリケーションをエミュレータ上で起動します。

Adb logcat は、標準入力として、ウィジェットの識別を処理する monkeyrunner スクリプトにパイプされます。リアルタイムで、monkeyrunner スクリプトは logcat 入力を解析して座標プレス情報を取得します。monkeyrunner スクリプトは AndroidViewClient (https://github.com/dtmilano/AndroidViewClient ) を使用します。これは、画面上のすべての View オブジェクトとそれらのプロパティをリストできるツールです。座標プレス情報を使用して、ビューのリストから正しい座標プロパティを持つビューが選択され、そのプロパティが出力されます。

私が抱えている問題は、Eclipse/Java のコンテキスト内で、logcat 出力のモンキーランナー スクリプトへのパイピングを処理しようとしたことに起因しています。adb logcat と monkeyrunner を別々の同時プロセスで実行し、logcat の InputStream を monkeyrunner の OutputStream に転送すると、monkeyrunner が座標情報を入力として受け取ることがないため、ロックの問題があるようです。ストリーム ハンドラも別のスレッドに配置しようとしましたが、これは効果がありませんでした。

並行プロセスが問題の原因となる場合があるため、monkeyrunner 内で直接 logcat から読み取ることを考えました。これにより、メイン プロセスは 1 つだけになりました。monkeyrunner 内で、エミュレーターとの接続が確立されると、エミュレーターで adb シェルを開くことができます (https://developer.android.com/tools/help/MonkeyDevice.html#shell)。Logcat はかなり一般的な adb コマンドですが、device.shell("logcat") を実行すると失敗します。

残念ながら、私の Google スキルでは、この問題の解決策を見つけることができませんでした。

0 投票する
3 に答える
4495 参照

android - ImportError: dtmilano という名前のモジュールがありません

こんにちは、Python 開発は初めてです。http://dtmilano.blogspot.in/2012/02/monkeyrunner-interacting-with-views.htmlにあるコードを実行しようとしていますが、コードを実行しようとすると次のエラーが発生します:

PyDev と Jython 2.5.3 で Eclipse を使用しています。また、Windows 7 マシンで実行されている Eclipse で Python 32 を構成しました。他の Python スクリプトは正常に実行されていますが、dtmilano のブログで提供されているコードがこのエラーを引き起こしている理由がわかりません。AndroidViewClient もインストールし、システム パスに ANDROID_VIEW_CLIENT_HOME を設定しました。助けてください。

0 投票する
4 に答える
2288 参照

android - ソフトキーボードが画面に表示されているかどうかを確認する方法-monkeyrunnerの使用中

私はmonkeyrunnerを使用して(AndroidViewClientを使用して)いくつかの画面クリックとエントリを自動化しようとしています

画面にエディットテキストがあるときはいつでも、ソフトキーボードがポップアップし、findViewByIdを介してボタンを押したい場合、(この特定のボタンがソフトキーボードの後ろにあると仮定して)失敗します。このボタンをクリックする代わりに、ソフトキーボードのいくつかのボタンをクリックします。そのため、回避策として、ソフトキーボードを非表示にするために、モンキーランナーを介してバックキーを押す必要があります。

私の質問は、monkeyrunnerから実行しているときにソフトキーボードが画面に表示されるかどうかを判断する方法です。

logcatを見ると、ソフトキーボードを表示しているときに次のように表示されます。

ソフトキーボードが取り外されている間、これを表示します

誰かがmonkeyrunnerスクリプトからのadblogcat出力を解析する方法の例を提供できる場合、適切な代替ソリューションが見つかった場合は、それを最後のオプションとして使用できます。

0 投票する
1 に答える
556 参照

monkeyrunner - Viewclient touch()はロングタップとして機能していますが、クリックとして機能するはずですか?

androidviewclientでmonkeyrunnerを使用してandroid4.0.3のGalleryアプリケーションをテストしていますが、AVCのtouch()関数を使用してアルバムをクリックしようとすると、アルバムが選択されます。アルバムを開く必要があります。アルバムを開くための私のコードは

私が何か間違ったことをしている場合は私に知らせてください?

0 投票する
1 に答える
2401 参照

android - Monkeyrunner と UI Automator の統合

モンキーランナーをUI Automatorと統合することは可能ですか? UI Automator プロジェクトに Monkeyrunner jar をインポートしましたが、実行すると

どのクラスも認識しないため、ビルドは失敗します。UI Automator Java Project で Monkeyrunner クラスを認識する他の方法はありますか

前もって感謝します

0 投票する
1 に答える
698 参照

android - 同じスクリプトで複数のデバイスをサポートするためにAndroidMonkeyRunnerのタッチイベント座標をスケーリングするにはどうすればよいですか?

エンタープライズユーザー向けのmdmソフトウェアのインストールを自動化するmonkeyrunnerスクリプトを作成しようとしています。スクリプトは複数のデバイスで実行されるため、複数の画面サイズと密度で実行されます。

デバイスAから参照座標を取得し、他のデバイスに適用できるようにスケーリングする方法はありますか?参照デバイス(この場合は、画面密度1.5の480x800ディスプレイを備えたSamsungGalaxyS2)から最初のタッチ座標を取得し、実行時にデバイスに基づいてスケーリングされた座標を計算することから始めました。ただし、画面表示が720 x 1184(ソフトキーの高さが一部削除されている)で画面密度が2のRAZR Maxx HDは、この方法では機能しません。

1つのデバイスからの座標を任意のデバイスで使用できるように、パッキングアルゴリズムについてより多くの洞察を持っている人はいますか?

AndroidViewClientを使用してビューのボタンに直接アクセスすることを検討しましたが、スクリプトはエンタープライズエンドユーザーを対象としているため、デバイスが安全であるため使用できませんでした。

0 投票する
2 に答える
6360 参照

android - 環境、ViewClientにANDROID_HOMEを設定

テストでボタンを押すためにviewclientを使用しています。しかし、環境変数に設定しても、ANDROID_HOMEパスが設定されていません。Windows7 OSを使用しています。

次の例外が発生しました

私の環境変数

それはいたるところに見え、それを台無しにしました。そのため、専門家に依頼して、これをここに投稿することを考えました。前もって感謝します

0 投票する
1 に答える
697 参照

android - Android: Python: AndroidViewClient Noob トラブル

これは私の現在のプロジェクトのアライアンス画面です:

アクトアライアンス

..これは、monkeyrunner dump.py を使用したビューの読み出しです。

私の avc_addallc.py からの次の行は、ActionBar の New ('+') ボタンを押します。

...すると、AddAlliance ダイアログが表示されます。

同盟ダイアログを追加

...次のビューの読み出し:

avc_addallc.py の次の行では、最初の EditText (Alliance_Name) にテキストを配置する必要があります。

これは何もしませんが、次のエラーを返します:

私はどこで間違ったのですか?ありがとう!

0 投票する
1 に答える
610 参照

android - AndroidViewClientでのfindViewByIdOrRaiseの問題

MonkeyRunnerを使用していくつかのテストを実行しようとしており、AndroidViewClientを使用してEditTextウィジェットを操作したいと考えています。

私はAndroidViewClientを正しく使用していると思います(以下の関連事項)、findViewByIdOrRaise()常にエラーをスローしています。頭に浮かんだIDを指定するすべてのバリエーションを試しました。

これが私のアクティビティのXMLからのスニペットです:

私のMonkeyRunnerスクリプトには、次のものがあります。

もちろん、私のコードは、示されているものよりも少し多く(しかしそれほど多くはありません)実行しています。関連性がないと思われるものをすべて削除しました。私は喜んでそれをすべてそこに置きますが、ここですべてが吐き出されたコードから始めたくありませんでした。

私はこのトピックで見つけることができるすべてのものを見てきました:

私が間違っていることについて何か考えはありますか?

0 投票する
1 に答える
739 参照

android - AndroidViewClient エラー: デバイスは安全です

自動化のために AndroidViewClient を使用しようとしています。[github][1] に「セキュアモード」に関するページがあります。これは次のように述べています。

AndroidViewClient には、次の 2 つのバックエンドがあります。

  • ViewServer
  • UiAutomator

UiAutomator は Android API 16 以降で動作するため、デバイスに以前のバージョンがある場合、唯一の代替手段は ViewServer です。

dump.py を実行しようとしていますが、「デバイスは安全です」というエラーが表示されます。セキュア モードのページには、「唯一の選択肢は ViewServer です」と記載されています。viewServer とは何ですか?monkeyrunner で使用するにはどうすればよいですか?

githubページのこの画像によると、APIレベル16以上を持っていない場合、ID名があればそれを使用できるため、これを理解するのに苦労しています(私はそうしています)。それを行う方法を知っています。

要約すれば、

API レベル 15 以下のデバイスとソース コードがあり、viewID を使用してアプリケーションを自動化したいと考えています。それは可能ですか?

最後のエラー: