Ios 如何使UIControl在XUITest中显示为按钮?
我已经创建了一个UIControl子类,其行为应该类似于UIButtonIos 如何使UIControl在XUITest中显示为按钮?,ios,xcode-ui-testing,Ios,Xcode Ui Testing,我已经创建了一个UIControl子类,其行为应该类似于UIButton 当我使用XUITest运行UI测试时,按钮出现在XUIApplication().StaticText中,而不是预期的XUIApplication().buttons在四处搜索之后,我发现这是由于未设置可访问性特征。例如,如果我有以下课程 class ActivityButton: UIControl { private let activityIndicator: UIActivityIndicatorView
当我使用XUITest运行UI测试时,按钮出现在
XUIApplication().StaticText
中,而不是预期的XUIApplication().buttons
在四处搜索之后,我发现这是由于未设置可访问性特征。例如,如果我有以下课程
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()
}
}
在四处搜寻之后,我发现这是由于没有设置可访问性特征。例如,如果我有以下课程
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()
}
}