我正在为 Android 应用编写 Flutter 测试。这是我的自定义功能,用于点击屏幕上的元素。我需要它来收集元素的坐标。在应用程序中有一个弹出窗口,它在登录后随机出现,我需要关闭它。但是在运行测试之前我不知道这个窗口是否出现。
我在线添加了 try catch,关闭了这个窗口。因此,如果窗口出现,测试工作正常,但如果没有出现,则测试失败:
VMServiceFlutterDriver: get_offset message is taking a long time to complete...
这是我用来点击元素的函数。
dynamic tapAndGetCoordinates(String key, FlutterDriver driver) async {
try {
var coordinates = await driver.getCenter(find.byValueKey(key));
var dx = coordinates.dx * pixelRatio;
var dy = coordinates.dy * pixelRatio;
keyCoordinates[key] = [dx, dy];
print(keyCoordinates.toString());
}catch(_){
}
await driver.tap(find.byValueKey(key), timeout: Duration(milliseconds: 10000));
print(key + ' tapped');
}
获取坐标的代码有什么问题?如果元素不存在,而代码在 try catch 块中,为什么会失败?我希望上面的代码应该忽略获取元素坐标的所有异常。