0

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

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

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

<EditText
    android:id="@+id/someText"
    ... >
    <requestFocus />
</EditText>
<!-- Yes, that is the actual id of my EditText -->

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

device, serialno = ViewClient.connectToDeviceOrExity(serialNo=myDeviceId)
vc = ViewClient(device=device, serialno=serialno)
device.installPackage(apkPath)
device.startActivity(component='com.app.name/com.app.name.ActivityName')
editTextId = 'id/someText'
try:
    someText = vc.findViewByIdOrRaise(editTextId)
    someText.touch()
    someText.type('Derp derp derp')
except ViewNotFoundException, e:
    # The comma above is because Jython 2.5.3 does not support the AS keyword
    print ' [*] %s' % (e)

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

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

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

4

1 に答える 1

2

ViewClientの最新バージョンは、アプリの各ビューに一意のIDを提供します。id形式はi/no_id/numberです。dump.pyというスクリプトを使用して、現在のビューを確認できます。これは、ViewClientのexamplesフォルダーにあります。

于 2013-03-07T07:45:25.557 に答える