Always evaluate the finder in driver.waitFor() and driver.waitForAbsent()

Fixes #11327
This commit is contained in:
Todd Volkert 2017-07-20 14:33:35 -07:00 committed by Yegor
parent ba5bb57a52
commit 11d7c79b99

View File

@ -200,7 +200,7 @@ class FlutterDriverExtension {
if (_frameSync)
await _waitUntilFrame(() => SchedulerBinding.instance.transientCallbackCount == 0);
await _waitUntilFrame(() => finder.precache());
await _waitUntilFrame(() => finder.evaluate().isNotEmpty);
if (_frameSync)
await _waitUntilFrame(() => SchedulerBinding.instance.transientCallbackCount == 0);
@ -213,7 +213,7 @@ class FlutterDriverExtension {
if (_frameSync)
await _waitUntilFrame(() => SchedulerBinding.instance.transientCallbackCount == 0);
await _waitUntilFrame(() => !finder.precache());
await _waitUntilFrame(() => finder.evaluate().isEmpty);
if (_frameSync)
await _waitUntilFrame(() => SchedulerBinding.instance.transientCallbackCount == 0);
@ -268,10 +268,8 @@ class FlutterDriverExtension {
Future<WaitForResult> _waitFor(Command command) async {
final WaitFor waitForCommand = command;
if ((await _waitForElement(_createFinder(waitForCommand.finder))).evaluate().isNotEmpty)
return new WaitForResult();
else
return null;
await _waitForElement(_createFinder(waitForCommand.finder));
return new WaitForResult();
}
Future<WaitForAbsentResult> _waitForAbsent(Command command) async {