gpt4 book ai didi

flutter-test - Flutter 小部件测试 Finder 失败,因为小部件超出了渲染树的边界

转载 作者:行者123 更新时间:2023-12-03 20:41:14 25 4
gpt4 key购买 nike

问题:运行小部件测试 (flutter_test) 时,什么控制“渲染树”的边界?
我问是因为我在非常基本的按钮上遇到错误,它无法找到小部件,因为它的垂直偏移超出了“渲染树”的边界,这似乎固定在 800x600。
我收到消息:

Warning: A call to tap() with finder "exactly one widget with text "More Info" (ignoring offstage widgets): Text("More Info", dependencies: [MediaQuery, DefaultTextStyle])" derived an Offset (Offset(400.0, 641.8)) that would not hit test on the specified widget.Maybe the widget is actually off-screen, or another widget is obscuring it, or the widget cannot receive pointer events.Indeed, Offset(400.0, 641.8) is outside the bounds of the root of the render tree, Size(800.0, 600.0).The finder corresponds to this RenderBox: RenderParagraph#1b6b1 relayoutBoundary=up27The hit test result at that offset is: HitTestResult(HitTestEntry#b18dd(RenderView#408c3), HitTestEntry#a2393())#0 WidgetController._getElementPoint (package:flutter_test/src/controller.dart:953:25)#1 WidgetController.getCenter (package:flutter_test/src/controller.dart:836:12)#2 WidgetController.tap (package:flutter_test/src/controller.dart:271:18)#3 main. (file:///Users/tommy/Repos/surveyapp/survey/test/widget_test.dart:99:18)


该错误消息中渲染树的大小为 800 x 600。(不确定如何设置或为什么。我很好奇它正好是 800x600?所以,它被设置在某个地方。是因为我有一个web 项目,并且在运行测试时出于某种原因默认为该大小?)。在测试中找不到偏移高度超过 600 的任何小部件。该屏幕在 iOS 模拟器和 Flutter web 下的 Chrome 上运行良好。当您使用 devtools、widget Inspector 时,没有任何布局问题。它只是一个带有祖先列、填充、中心、安全区域和脚手架的按钮,作为简单的有状态小部件页面的一部分。
(我在 Flutter 2.12 或更高版本上发生过这种情况。)

最佳答案

我在测试期间点击按钮时遇到了同样的问题。
我不知道如何更改 800x600 大小,但我设法找到了一种滚动到按钮的方法,这要归功于此答案 https://stackoverflow.com/a/67990754/992201
这是最终的代码:

final Finder buttonToTap = find.byKey(const Key('keyOfTheButton'));

await tester.dragUntilVisible(
buttonToTap, // what you want to find
find.byType(SingleChildScrollView), // widget you want to scroll
const Offset(0, 50), // delta to move
);
await tester.tap(buttonToTap);
await tester.pump();

关于flutter-test - Flutter 小部件测试 Finder 失败,因为小部件超出了渲染树的边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67128148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com