5

私が見たUI オートメーションの例value()はすべて、メソッドを使用して JavaScript API で状態を検査できる標準コンポーネントを使用しています。これは少し制限的です。色やアルファ値などを確認したいとしましょう。

ビューのプロパティを調べるにはどうすればよいですか?

例: 特定の要素をタップすると、その要素が「選択」されます。それをタップして、isSelected が TRUE であることを確認したいと思います。

アップデート:

プロパティでのみトリガーされるように見えることを除いて、理論的にはそれを行う必要があるwithPredicate()メソッドを見つけました。name

element.withPredicate("isSelected == YES")          // always fails
element.withPredicate("name matches 'my element'")  // works
4

1 に答える 1

6

私は自分の目的に合ったこのアプローチに行き着きました:

UIView.accessibilityValue が関連するプロパティを含む JSON 文字列を返すようにします。

- (NSString *)accessibilityValue
{
    return [NSString stringWithFormat:
            @"{'alpha':%f, 'isSelected':%@}", 
            self.alpha, self.isSelected ? @"true" : @"false"];
}

次に、テスト コードで eval() を使用し、それらのプロパティを確認します。value() は、accessibilityValue の呼び出しの省略形です。

var props = eval("(" + element.value() + ")");

if (props.isSelected) {
    UIALogger.logFail("Should not be selected");
}

UIATarget.localTarget().tap({"x":471, "y":337});

var props = eval("(" + element.value() + ")");

if (!props.isSelected) {
    UIALogger.logFail("Should be selected");
}
于 2011-06-29T09:15:14.000 に答える