首页 > 解决方案 > 为 Flutter Web 应用添加 id 或 name 属性或其他标识方式?

问题描述

编写 Flutter Web 应用程序时,我尝试利用基于 Selenium 的 Web-UI-Testing 框架。遗憾的是,我无法通过其 id 或 name 属性识别代表某个颤振小部件的 HTML 元素。HTML 文档中不存在小部件键。

我设法使用文本小部件内容来查找小部件的文本部分,并且可以找到表示包含文本的小部件的父元素,但这对于图像、画布等失败。

我可以使用任何机制将 id/name(或任何其他标识方式)添加到 HTML 标签汤吗?

使用 JavaScript,有没有办法遍历内部逻辑小部件树并从那里得出代表 HTML 元素(例如通过其位置和大小)?

标签: javascripthtmlseleniumflutterflutter-web

解决方案


我认为使用任何 Selenium 类型的 Flutter Web 测试框架都不是正确的方法。

原因是您(作为 Web 开发人员)无法控制生成的 DOM 的外观。这意味着您不能使用 XPath 和其他方式来选择元素。

我想测试 Flutter 应用程序(包括 Flutter Web)的唯一方法是使用 Flutter Driver: https ://api.flutter.dev/flutter/flutter_driver/flutter_driver-library.html


推荐阅读