6

私はiOS UIAutomationに非常に慣れていません。これが私が直面している問題です

以下のようなビュー階層があり、オートメーション sctipt の CustomView2 要素にアクセスしたい

UIWindow > UIScrollView > CustomView1 (複数) > CustomView2 (複数)

スクロールビューには CustomView1 タイプのサブビューがあり、CustomView1 には CustomView2 タイプのサブビューがあります。

アクセシビリティ情報を階層内のすべてのビューに割り当てましたが、オートメーション スクリプトの CustomView2 要素にアクセスできません。

UIScrollView で logElementTree() を実行すると、取得するのは CustomView2 のインスタンスだけです。CustomView2 は UIWindow のツリー構造にもありません。

不足しているものや間違っているものがあるかどうかを提案してください。

これが私が使用しているコードです

var mainWindow = application.mainWindow();
var scrollView = mainWindow.scrollViews()[0];
var custom1 = scrollView.elements().withName("CustomView1");

for(var index=0; index<custom1.length; index++){
    currentIndustry.tap();
    custom1[index].logElementTree();
    var custom2 = custom1[index].elements().withName("CustomView2");
    UIALogger.logPass("Custom2 Length : " + custom2.length);
}

custom1[index].logElementTree(); によって出力されるツリー。CustomView2 のインスタンスが含まれていません

PS CustomView1 要素と CustomView2 要素の両方にアクセスする必要があります

4

1 に答える 1

5

これは、まだ答えが見つからない場合に役立ちます。

UIAutomation のネストされた Accessibilty 要素が階層から消える

CustomView1 クラスで、次を実装します。

- (BOOL)isAccessibilityElement
{
    return NO;
}

これにより、logElementTree() を実行したときに CustomView2 要素が表示されます。

CustomView2 にアクセス可能な要素が含まれていて、基本的にコンテナー ビューでもある場合、そのクラスにも上記を実装すると、その子ビューがアクセス可能になります。

于 2012-01-18T17:53:24.683 に答える