我需要每个可见的 UI 组件(Flutter 中的小部件)都是可区分的,并且在使用 Appium 的 Inspector 检查时具有
accessibility-id
和 text
属性。我还需要这两个属性不同。
我一直在使用 Flutter 的 Semantics 小部件来尝试实现此目的,但尚未找到设置
text
属性的方法。
假设我希望将accessibility-id 设置为“label”,将文本设置为“textContent”。
Semantics(
label: 'label',
child: Text('textContent'),
)
这就是上面的代码使用 Appium Inspector 检查时的结果:
如果我将 exceptSemantics 属性设置为 true:
Semantics(
excludeSemantics: true,
label: 'label',
child: Text('textContent'),
)
accessibility-id 设置正确,但 Appium Inspector 中仍然没有可用文本:
我还尝试过 Semantics 的“value”属性,该属性在 iOS 上运行良好,但在 Android 上它只是将其附加到accessibility-id 的开头:
Semantics(
excludeSemantics: true,
label: 'label',
value: 'value',
child: Text('textContent'),
)
我不确定我想要实现的目标是否可能。如果有人知道使用语义或任何其他替代方案的解决方案,我们将不胜感激。
我不确定这是否能解决您的 Appium 问题,但为什么不直接使用
semanticsLabel
属性呢?
Text(
'An error occurred',
semanticsLabel: 'error-occurred',
)