1

iOSアプリをテストしたい。動的に生成されたUI要素が含まれています。Interface Builderを使用せずに、すべてのUI要素をプログラムで作成します。テストするには、自動化ツールを介してそれらにアクセスする必要があります。

少なくともlogElementTree()でそれらを印刷することはできず、動的に生成された要素にアクセスする方法がわかりません。

スクリプトを使用して動的に生成された要素にアクセスする方法はありますか?

これは、UI要素をログに記録しようとする私のコードです。

var target = UIATarget.localTarget();

var app = target.frontMostApp();

var window = app.mainWindow();

target.logElementTree();

さらに、app.mainWindow()。logElementTree();を使用してみました。また、機能していません。

どんな助けでも大歓迎です。

4

1 に答える 1

0

これが答えです。私はそれを自分でやりました。これがプロセスです。

メソッドdelay(int)を使用して、スクリプトが存続するため、テストスクリプトを一時停止できます。そうしないと、動的UIが描画される前にスクリプトが終了します。

これで、logElementTree()メソッドが機能し、UI要素にアクセスできるようになりました。

これは、動的に生成されたUI要素にアクセスする方法です。私のアプリには最初に接続ボタンがあり、クリックするとテキストボックス付きのUIが表示され、ログインボタンが動的に描画されます。

これは、UI要素にアクセスするためのスクリプトです。

var target = UIATarget.localTarget(); var app = target.frontMostApp(); app.logElementTree();

//-要素を選択しますUIALogger.logMessage( "接続ボタンをクリックします"); var window = UIATarget.localTarget()。frontMostApp()。mainWindow()。buttons()[0] .tap();

UIALogger.logMessage( "次のUIを待つ"); target.delay(2); target.frontMostApp()。logElementTree(); UIALogger.logMessage( "ユーザー名を入力してください");

UIALogger.logMessage( "次のUIを待つ"); target.delay(3); target.frontMostApp()。logElementTree(); target.frontMostApp()。mainWindow()。scrollViews()[0] .textFields()[0] .setValue( "admin"); UIALogger.logMessage( "キーボードを閉じる"); var name = UIATarget.localTarget()。frontMostApp()。keyboard()。buttons()["done"]。tap();

これが誰かに役立つことを願っています

于 2013-01-04T05:32:27.457 に答える