Deo*_*uza 3 testing dart flutter
我想检查一个元素是否存在。类似于返回布尔值的函数。或者类似于 Selenium 'ifExists' 中的函数,如果元素不一定存在,则不会抛出异常,并且在未找到元素时它将继续该过程,而不会在中间停止。flutter_test 上也有类似的东西,但到目前为止我还无法将其与 flutter_driver 一起使用。
根据Flutter issues #15852,目前还没有这种可能性。
但是用户 jonsamwell 在这个问题中提到的一种解决方法是使用waitFor
flutter driver 的方法,并将其包装在 try/catch 中,以便在超时时等待。如果超时,则该元素不存在,如果未超时,则该元素存在:
Future<void> testStep() async {
final isOpen = await isPresent(find.byType("Drawer"), world.driver);
if (isOpen) {
...
}
}
Future<bool> isPresent(SerializableFinder finder, FlutterDriver driver, {Duration timeout = const Duration(seconds: 1)}) async {
try {
await driver.waitFor(finder, timeout: timeout);
return true;
} catch (e) {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
显然,您必须根据您的用例计算等待时间以考虑任何加载时间。
归档时间: |
|
查看次数: |
3102 次 |
最近记录: |