-
-
Notifications
You must be signed in to change notification settings - Fork 194
Open
Description
elementClick
no-ops on Flutter 3.32.4 for autocomplete list item (autocomplete_option_0
) — returns {}
but UI doesn’t change
Environment
- Flutter: 3.32.4 (stable)
Framework:6fba2447e9
(2025-06-12 19:03:56 -0700)
Engine:8cd19e509d
(2025-06-12 16:30:12 -0700)
Dart: 3.8.1 • DevTools: 2.45.1 - Appium: 2.x (started via
@wdio/appium-service
) - Drivers (from Appium logs):
flutter@2.18.1
uiautomator2@4.2.6
- Platform/Device: Android emulator (
udid: emulator-5554
) - Build: Debug APK (
app-stage-debug-latest.apk
) - Runner: WebdriverIO + Cucumber (WDIO 8.x; can share exact versions if needed)
Note: Before upgrading Flutter version, the same tests passed without code changes. After upgrading to 3.32.4, taps via W3C
elementClick
on certain Flutter widgets stop having any effect. (Working fine in this version Flutter: 3.29.4)
Problem summary
After entering text into the origin field (e.g., “Karachi”), tapping the first autocomplete option (autocomplete_option_0
) with driver.elementClick(...)
returns {}
(success) but the UI does not change. The step then times out.
Other steps (e.g., opening traveler selector, incrementing counts) pass; the failures begin when tapping list items/buttons that appear after typing (notably the autocomplete option).

Downgrading Flutter (pre-3.32.x) makes the suite pass again.
Minimal repro code (actual page object we use)
> **File:** `test/specs/pageobjects/1-searchResults.page.js`
```js
const find = require('appium-flutter-finder');
class SearchResultsPage {
get originSelector() {
return find.byValueKey('airport_selector_origin');
}
get originField() {
return find.byValueKey('airport_field_origin');
}
get destinationField() {
return find.byValueKey('airport_field_destination');
}
get departureDateField() {
return find.byValueKey('flight_search_form_departure_date');
}
get dateButton() {
return find.byValueKey('calendar_day_20_9_2025');
}
async selectDepartureDate() {
await driver.elementClick(this.departureDateField);
await driver.elementClick(this.dateButton);
await driver.pause(3000);
}
get autoCompleteOption() {
return find.byValueKey('autocomplete_option_0'); // This is the problem
}
get searchButton() {
return find.byValueKey('flight_search_button');
}
get firstFlightCard() {
return find.byValueKey('search_flight_card_0');
}
get firstFareOption() {
return find.byValueKey('fare_options_0');
}
async selectOrigin(city) {
await driver.elementClick(this.originSelector);
await browser.pause(3000);
await driver.elementClick(this.originField);
await browser.pause(2000);
await driver.execute('flutter:enterText', city);
await driver.execute('flutter:waitFor', this.originField);
await browser.pause(5000);
await driver.elementClick(this.autoCompleteOption); // PROBLEM: this click returns {} but UI doesn't change; step times out
await browser.pause(2000);
}
async selectDestination(city) {
await driver.elementClick(this.destinationField);
await browser.pause(3000);
await driver.execute('flutter:enterText', city);
await driver.execute('flutter:waitFor', this.destinationField);
await browser.pause(5000);
await driver.elementClick(this.autoCompleteOption);
await browser.pause(3000);
}
async clickSearchButton() {
await driver.elementClick(this.searchButton);
await browser.pause(5000);
}
}
module.exports = new SearchResultsPage();
mhmzdev and mo-karbalaee
Metadata
Metadata
Assignees
Labels
No labels