转储XCUIApplication()
的输出示例Application, pid: 34372, {{0.0, 0.0}, {320.0, 568.0}}, label: 'MyApp'
Window, {{0.0, 0.0}, {320.0, 568.0}}
Other, {{0.0, 0.0}, {320.0, 568.0}}
Other, traits: 8589934592, {{0.0, 0.0}, {320.0, 568.0}}
NavigationBar, **traits: 35192962023424, {{0.0, 20.0}, {320.0, 44.0}}, identifier: 'SillyDashboardView'
在上面的输出中,traits: 8589934592
表示什么?
查看XCUIApplication对象没有帮助,也无法从Apple找到任何文档。知道这些值代表什么将是有用的。
答案 0 :(得分:1)
根据对象上设置的accessibilityTraits,特征编号会有所不同。某些对象具有开箱即用的辅助功能特性,您可以根据需要添加或删除它们。这些特征对XCTest来说意味着不同的东西,例如.button
特征意味着当您查询按钮时元素会显示,.selected
特征会影响XCUIElement.isSelected
的值......
此号码也可能受到Apple不与我们分享的其他属性的影响,但出于UI测试的目的,您只需要观察accessibilityTraits的值。 / p>
答案 1 :(得分:1)
根据official documentation, UIAccessibilityTraits 是:
一个掩码,其中包含可以最好地表征辅助功能元素的辅助功能特征的OR组合。
实际上 UIAccessibilityTraits 是什么?只是64位整数值的另一个别名,这意味着有64个不同的特征,视图可以使每个位代表一个特征。看看list of all possible traits,你可以看到大约有17种已知的tratis(正如Oletha指出的那样,苹果可能会使用一些未知的特性,但它们不与我们分享)。
如果您打印其中一些,请执行以下操作:
import re
`PATTERN = re.compile("("+start_time+"[0-9]{0}|"+end_time+")$")`
你可以看到每个特征都是一个2的幂(它只有一个位设置)的值。因此,print(UIAccessibilityTraitNone) //Prints 0
print(UIAccessibilityTraitButton) //Prints 1
print(UIAccessibilityTraitLink) //Prints 2
print(UIAccessibilityTraitImage) //Prints 4
//...
- 每个特定特征都会为您打印出OR
时看到的最终数字。
因此,在您的示例中,如果您选择号码为XCUIApplication()
的号码,则您拥有:
35192962023424
这意味着此视图应用了两个特征。值为 35192962023424 or in binary:
0000 0000 0000 0000 0010 0000 0000 0010 0000 0000 0000 0000 0000 0000 0000 0000
^ ^
的文件,或二进制文件:
35184372088832
和值为 0000 0000 0000 0000 0010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
^
的那个,或二进制:
8589934592
查看这两个数字的known特征,您可以得出结论,没有为这些视图提供已知的特征。
我的猜测查看输出结果是 0000 0000 0000 0000 0000 0000 0000 0010 0000 0000 0000 0000 0000 0000 0000 0000
^
特征是35184372088832
特征,NavigationBars
是8589934592
特征。也许,这就是您查询navigationBars或otherElements的方式。