Сначала нужно указать driver
дождаться, пока будет найден элемент, например CustomerBusinessName
textField, а затем нажать на него, а затем непосредственно ввести текст. Не нужно ждать или спать в течение 5 секунд между касанием и вводом текстовых действий, потому что сначала драйвер должен найти элемент, а затем выполнить действия с ним. Я попытался отрисовать два TextFields
и смог правильно ввести текст в них обоих. Вот рабочий пример кода:
main.dart
:
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Form(
key: Key('inputTextField'),
child: TextField(
decoration: InputDecoration(
hintText: 'Enter name'
),
)
),
Form(
key: Key('inputTextField1'),
child: TextField(
decoration: InputDecoration(
hintText: 'Enter phone'
),
)
)
],
)
)
driver test
:
test('enter text', () async {
final formFinder = find.byValueKey('inputTextField');
final formFinder1 = find.byValueKey('inputTextField1');
await driver.waitFor(formFinder);
await driver.tap(formFinder);
await driver.enterText('Hello');
print('entered text');
await driver.waitFor(formFinder1);
await driver.tap(formFinder1);
await driver.enterText('123456');
print('entered number');
});
результат теста:
Надеюсь, что это ответ на ваш вопрос.