【问题标题】:Is it possible to simulate a sequence of taps in a flutter app?是否可以在颤振应用程序中模拟一系列点击?
【发布时间】:2021-07-01 19:50:17
【问题描述】:

我需要构建一个颤振应用来模拟点击。

例如:想象一个键盘数字应用程序,其下方有一个名为“模拟序列按钮”的按钮。 所以,我需要做的是:

  • 点击模拟按钮;
  • 此按钮负责模拟键盘数字的一系列敲击;
  • 在屏幕上显示点击的数字。

有可能吗?我该怎么做?

【问题讨论】:

  • 这是什么意思? ...simulate a sequence of taps
  • 我的意思是我需要模拟不止一个水龙头。例如:模拟按键 1,比键 2,比键 3。结果 123
  • 很抱歉我不清楚...我知道sequence 是什么意思...simulate 是什么意思?
  • 没问题。这意味着我只想按一个按钮,结果就像我按了几个按钮

标签: android ios flutter mobile touch


【解决方案1】:

您只能从集成测试中“模拟” UI 交互(如点击、滑动等) (about integration tests on flutter)。

对于真正运行的应用程序,您可以使用onPressed 按钮处理程序,将所需的文本添加到标签或文本字段:

class _SomeState extends State<SomeWidget> {
  final textController = TextEditingController();

  @override
  void dispose() {
    textController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Column(children: [
      TextField(controller: textController),
      TextButton(
        onPressed: () {
          textController.text += '123';
        },
        child: Text('Button')
      ),
    ]);
  }
}

【讨论】:

  • 我需要的结果不仅仅是连接文本(我需要“模拟”按钮按下)。如果我需要“模拟”按下按钮,您还有其他想法吗?
  • 对不起,可能是我的回答不清楚。 You can "simulate" UI interactions from integration tests only 表示普通运行时不能这样做。
  • 为什么文本拼接功能不适合你?你能解释一下吗?
  • 是的,当然。是因为我需要模拟实际的按钮按下,而不仅仅是结果。我将尝试用另一个例子来说明:想象两个不同的应用程序,所以我按下应用程序 1 上的按钮 -> 打开第二个应用程序 -> 模拟按下应用程序 2 上的按钮(不点击应用程序 2)我清楚了吗?谢谢!
  • 例子很清楚,谢谢。但我仍然看不到任何模拟按钮点击的理由。在您的示例中,您可以使用深度链接、解析参数和调用所需的函数,而无需 UI 交互模拟。
猜你喜欢
  • 1970-01-01
  • 2020-12-13
  • 2018-09-19
  • 1970-01-01
  • 2021-01-24
  • 2019-10-11
  • 1970-01-01
  • 2021-08-30
  • 1970-01-01
相关资源
最近更新 更多