これが答えです。私はそれを自分でやりました。これがプロセスです。
メソッド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();
これが誰かに役立つことを願っています