Не уверен, что вы нашли ответ на этот вопрос, но я собираюсь опубликовать здесь решение, которое работает для меня.По сути, BottomNavigationBar
имеет свойство key
, которое вам нужно использовать.Как только Flutter Driver идентифицирует этот ключ, вы можете указать драйверу нажать на любой из его дочерних элементов, например BottomNavigationBarItem
.
. На моем экране 2 bottomNavigationBarItems
, как показано ниже, и я определил ключ для их родительского виджета, т.е.BottomNavigationBar
as:
bottomNavigationBar: BottomNavigationBar(
type: BottomNavigationBarType.shifting,
key: Key('bottom'),
items: [
BottomNavigationBarItem(
icon: Icon(Icons.ac_unit, color: Colors.green,),
title: Text('First', style: TextStyle(color: Colors.black),)
),
BottomNavigationBarItem(
icon: Icon(Icons.cast, color: Colors.yellow,),
title: Text('Second', style: TextStyle(color: Colors.black),)
)
],
),
И я написал тест драйвера флаттера, чтобы задействовать оба элемента, которые отлично работали.
test('bottomnavigationbar test', () async {
await driver.waitFor(find.byValueKey('bottom'));
await driver.tap(find.text('First'));
print('clicked on first');
await driver.tap(find.text('Second'));
print('clicked on second too');
});
Результат: