如何使用Flutter Driver获取同Key元素的文本数组
解决Flutter Driver获取多个同Key元素文本的问题
当使用await driver.getText(find.byValueKey('test'))时出现Too many elements错误,是因为该方法仅支持匹配单个元素,而你的页面中存在4个带有Key('test')的Text组件。要获取所有匹配元素的文本并存储到数组中,可按以下步骤实现:
获取所有匹配的元素实例
使用driver.getElements()方法获取所有符合条件的元素列表:final List<SerializableFinder> elements = await driver.getElements(find.byValueKey('test'));遍历元素获取文本并收集
循环遍历每个元素,调用getText()获取文本内容并存入数组:List<String> textArray = []; for (var element in elements) { String text = await driver.getText(element); textArray.add(text); }也可以用更简洁的
Future.wait方式批量处理:List<String> textArray = await Future.wait( elements.map((element) => driver.getText(element)), );
执行以上代码后,textArray数组中就会包含所有带有Key('test')的Text组件的文本内容。
内容的提问来源于stack exchange,提问作者salat
相关产品推荐
相关产品推荐

