gpt4 book ai didi

flutter - 如何检查flutter驱动程序(QA环境)中是否存在元素?

转载 作者:IT王子 更新时间:2023-10-29 07:06:55 26 4
gpt4 key购买 nike

我想检查一个元素是否存在。类似于返回 bool 值的函数。或者类似于 Selenium 'ifExists' 中的函数,如果元素不一定存在,它不会抛出异常,并且它会继续处理,而不会在找不到元素时停止。 flutter_test 上也有类似的东西,但到目前为止我无法将它与 flutter_driver 一起使用。

最佳答案

根据 Flutter issue #15852 ,目前暂时没有这种可能性。

但是用户jonsamwell在这个issue中提到的一种解决方法是使用flutter driver的waitFor方法,然后将其包裹在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;
}
}

显然,您必须根据您的用例计算等待时间,以考虑任何加载时间。

关于flutter - 如何检查flutter驱动程序(QA环境)中是否存在元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49442872/

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