Как проверить свойства элемента в iOS GUI автоматизации? - PullRequest
5 голосов
/ 28 июня 2011

Вся автоматизация пользовательского интерфейса примеры Я видел, что используются стандартные компоненты, состояние которых можно проверить с помощью JavaScript API с помощью метода value().Это немного ограничивает.Допустим, вы хотите проверить цвет или альфа-значение и еще много чего.

Как я могу проверить свойства вида?

Пример: касание определенногоэлемент должен сделать его "выбранным".Я хотел бы нажать на него, а затем убедиться, что isSelected равно TRUE.

Обновление:

Я обнаружил withPredicate () метод, который должен делать это теоретически, за исключением того, что он запускается только для name свойств:

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

1 Ответ

6 голосов
/ 29 июня 2011

Я закончил с этим подходом, который работает для моих целей:

Пусть UIView.accessibilityValue возвращает строку JSON с соответствующими свойствами:

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

Затем используйте eval () в тестекод и проверьте эти свойства.Значение () является сокращением для вызова 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");
}
...