Драйвер флаттера: не удается найти элемент (текст) на экране

#flutter #testing #integration #flutter-test #flutterdriver

#флаттер #тестирование #интеграция #флаттер-тест #flutterdriver

Вопрос:

Элемент, который мне нужно найти, находится (в дочернем элементе):

  static Widget _buildProjectCategoryWidget(BuildContext context, String name) {
final themeData = Theme.of(context);
final primaryTextTheme = themeData.primaryTextTheme;
return Container(
  padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 5.0),
  decoration: BoxDecoration(borderRadius: BorderRadius.circular(13.0), color: FlAppStyles.altButtonColor),
  child: Text(name, style: primaryTextTheme.textSmall),
);
 

Я попытался найти дочерний элемент с помощью этого, но у меня ошибка драйвера: не удалось выполнить нажатие из-за удаленной ошибки:

 SerializableFinder message = find.text("mytext");
    await driver.waitFor(message);
    expect(await driver.getText(message), "mytext"); await driver.tap(buttonChangeProfession);
    
 

Я новичок в интеграционном тестировании flutter, не знаю, что не так, пожалуйста, помогите. Я также попытался добавить ключ и найти элемент по нему, но дело в том, что мне нужно найти текст этого элемента.

Комментарии:

1. Это помогло бы узнать, что такое полное сообщение об ошибке и как buttonChangeProfession определяется finder.

Ответ №1:

Попробуйте это, если вы хотите убедиться, что этот текст существует на экране:

 expect(
      await driver.getText(find.text("enter text you want to find")),
      "enter text you want to find");
 

Попробуйте это, если вы хотите нажать на этот текст:

   final elementFinder= find.text('enter text you want to tap');
  await driver.waitFor(elementFinder);
  await driver.tap(elementFinder);
 

Пожалуйста, получите этот текст, проверив его с помощью Devtool, если вы не уверены в этом, надеюсь, это поможет