2016-12-09 2 views
0

Я создал подкласс UIControl, который должен вести себя аналогично UIButton.Как я могу сделать UIControl в виде кнопки в XCUITest?

Когда я запускаю свои тесты пользовательского интерфейса с помощью XCUITest, кнопка появляется в XCUIApplication().staticTexts, а не в ожидании XCUIApplication().buttons.

ответ

3

После охоты я обнаружил, что это не так, чтобы не была установлена ​​черта доступности. Например, если у меня есть следующий класс;

class ActivityButton: UIControl { 

    private let activityIndicator: UIActivityIndicatorView = { 
     let activityIndicator = UIActivityIndicatorView() 
     activityIndicator.hidesWhenStopped = true 
     activityIndicator.translatesAutoresizingMaskIntoConstraints = false 
     return activityIndicator 
    }() 

    let titleLabel: UILabel = { 
     let titleLabel = UILabel() 
     titleLabel.translatesAutoresizingMaskIntoConstraints = false 
     return titleLabel 
    }() 

    override public init(frame: CGRect) { 
     super.init(frame: frame) 
     // This is the required call to make the control appear 
     // as a button in ui tests 
     accessibilityTraits = UIAccessibilityTraitButton 
     addSubview(activityIndicator) 
     addSubview(titleLabel) 
     createConstraints() 
    }  

} 
Смежные вопросы