测试以下场景的最佳方法是什么?
目前我使用Appium,但我找不到B屏幕的特定元素,因为按钮标签在检查器中并不总是可用。为了在测试中选择按钮,我必须指定 X 和 Y 坐标才能单击。我正在寻找一个强大的解决方案,涵盖 Android、iOS 和 flutter 的自动化集成 e2e 测试。使用 flutter 集成测试在独立模式下测试单独的 Flutter 部分。
事实证明,Flutter 在大多数情况下都会构建一个在 Appium 中可见的
accessibility id
的应用程序。这个 accessibility id
源自 Widget 文本和其他 UI 元素。不幸的是我找不到任何 accessibility id
图标小部件。为了在 Appium 中找到这样的 Widget,你必须使用 Semantics
widget 将其包装在 flutter 中。
Semantics(
label: "EDIT_PROFILE",
child: Icon(
完成后,您可以轻松地在Appium中找到任何小部件。回答主要问题:Appium是测试Flutter只是Android应用程序中的嵌入式屏幕的场景的一个很好的解决方案。希望iOS上的测试也能顺利。
只是一个附加信息,我从
new flutter project
开发了一个简单的 flutter 应用程序,并将 accessibility id
添加到两个小部件。
已具有
semanticsLabel
的小部件示例:
Text(
'$_counter',
semanticsLabel: 'counterText$_counter',
style: Theme.of(context).textTheme.headlineMedium,
),
没有
semanticsLabel
的小部件示例,因此我们需要用 Semantics
小部件包装它:
floatingActionButton: Semantics(
label: 'incrementButton',
child: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: const Icon(Icons.add),
),
),
然后使用适用于 Android 和 iOS 的 Appium 进行测试。 请参阅此链接获取代码。