Как проверить свойства элемента в iOS GUI автоматизации?
Все примеры автоматизации пользовательского интерфейса, которые я видел, используют стандартные компоненты, состояние которых можно проверить с помощью JavaScript API, используя value()
метод. Это немного ограничивает. Допустим, вы хотите проверить цвет или альфа-значение и еще много чего.
Как я могу проверить свойства представления?
Пример: нажатие на определенный элемент должно сделать его "выбранным". Я хотел бы нажать на него, а затем убедиться, что isSelected является TRUE.
Обновить:
Я нашел метод withPredicate(), который должен делать это теоретически, за исключением того, что он, кажется, срабатывает только на name
свойства:
element.withPredicate("isSelected == YES") // always fails
element.withPredicate("name matches 'my element'") // works
1 ответ
Я закончил с этим подходом, который работает для моих целей:
Пусть 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");
}