How can we enter some text in flutter quill editor?
@anu-rachel please describe the problem.
We have this flutter app, in which we are entering descriptions in a flutter quill editor . I added key value to this quill component and like the text field, I try below methods but not able to enter text in this editor. 1.await driver.execute('flutter:waitForTappable', byType('QuillEditor')) await driver.elementSendKeys(byType('QuillEditor'), 'I can enter text') 2. await driver.elementClick(byValueKey('quillEditor')); await driver.execute('flutter:enterText', 'I can enter text')
Is there any way to enter text in this editor?
are you following this pre-requisite??
Your Flutter app-under-test (AUT) must be compiled in debug or profile mode because Flutter Driver does not support running in release mode. Also, ensure that your Flutter AUT has enableFlutterDriverExtension() before running the app. Then, please make sure your app imported flutter_driver package as its dependencies as well.
Yes we are following all these and we are able to test other components (eg:- I am able to enter text in any text field using sendKeys() ). But not able to enter text in flutter quill editor... In that quill itself we are able to select bold/italics/underline etc. Only problem is with entering text in this editor
Please add Appium logs.
When used below commands await driver.execute('flutter:waitForTappable', byType('QuillEditor')) await driver.elementSendKeys(byType('QuillEditor'), 'I can enter text')
2023-07-20 01:27:39:495 [HTTP] --> POST /wd/hub/session/384ded6c-0153-4ae7-84d4-373b200484d5/execute/sync 2023-07-20 01:27:39:496 [HTTP] {"script":"flutter:waitForTappable","args":["eyJmaW5kZXJUeXBlIjoiQnlUeXBlIiwidHlwZSI6IlF1aWxsRWRpdG9yIn0"]} 2023-07-20 01:27:39:497 [FlutterDriver@89d8 (384ded6c)] Calling AppiumDriver.execute() with args: ["flutter:waitForTappable",["eyJmaW5kZXJUeXBlIjoiQnlUeXBlIiwidHlwZSI6IlF1aWxsRWRpdG9yIn0"],"384ded6c-0153-4ae7-84d4-373b200484d5"] 2023-07-20 01:27:39:497 [FlutterDriver] Executing Flutter driver command 'execute' 2023-07-20 01:27:39:498 [FlutterDriver] >>> {"command":"waitForTappable","finderType":"ByType","type":"QuillEditor"} 2023-07-20 01:27:39:908 [FlutterDriver] <<< {"isError":false,"response":{},"type":"_extensionType","method":"ext.flutter.driver"} | previous command waitForTappable 2023-07-20 01:27:39:909 [FlutterDriver@89d8 (384ded6c)] Responding to client with driver.execute() result: "eyJmaW5kZXJUeXBlIjoiQnlUeXBlIiwidHlwZSI6IlF1aWxsRWRpdG9yIn0" 2023-07-20 01:27:39:910 [HTTP] <-- POST /wd/hub/session/384ded6c-0153-4ae7-84d4-373b200484d5/execute/sync 200 414 ms - 71 2023-07-20 01:27:39:911 [HTTP] 2023-07-20 01:27:40:124 [HTTP] --> POST /wd/hub/session/384ded6c-0153-4ae7-84d4-373b200484d5/element/eyJmaW5kZXJUeXBlIjoiQnlUeXBlIiwidHlwZSI6IlF1aWxsRWRpdG9yIn0/value 2023-07-20 01:27:40:124 [HTTP] {"text":"I can enter text"} 2023-07-20 01:27:40:126 [FlutterDriver@89d8 (384ded6c)] Calling AppiumDriver.setValue() with args: ["I can enter text","eyJmaW5kZXJUeXBlIjoiQnlUeXBlIiwidHlwZSI6IlF1aWxsRWRpdG9yIn0","384ded6c-0153-4ae7-84d4-373b200484d5"] 2023-07-20 01:27:40:127 [FlutterDriver] Executing Flutter driver command 'setValue' 2023-07-20 01:27:40:127 [FlutterDriver] >>> {"command":"tap","finderType":"ByType","type":"QuillEditor"} 2023-07-20 01:27:40:135 [FlutterDriver] <<< {"isError":false,"response":{},"type":"_extensionType","method":"ext.flutter.driver"} | previous command tap 2023-07-20 01:27:40:143 [FlutterDriver@89d8 (384ded6c)] Responding to client with driver.setValue() result: null 2023-07-20 01:27:40:145 [HTTP] <-- POST /wd/hub/session/384ded6c-0153-4ae7-84d4-373b200484d5/element/eyJmaW5kZXJUeXBlIjoiQnlUeXBlIiwidHlwZSI6IlF1aWxsRWRpdG9yIn0/value 200 20 ms - 14 2023-07-20 01:27:40:145 [HTTP] 2023-07-20 01:27:40:372 [HTTP] --> POST /wd/hub/session/384ded6c-0153-4ae7-84d4-373b200484d5/execute/sync 2023-07-20 01:27:40:372 [HTTP] {"script":"flutter:waitForTappable","args":["eyJmaW5kZXJUeXBlIjoiQnlUZXh0IiwidGV4dCI6IlNhdmUifQ"]} 2023-07-20 01:27:40:373 [FlutterDriver@89d8 (384ded6c)] Calling AppiumDriver.execute() with args: ["flutter:waitForTappable",["eyJmaW5kZXJUeXBlIjoiQnlUZXh0IiwidGV4dCI6IlNhdmUifQ"],"384ded6c-0153-4ae7-84d4-373b200484d5"] 2023-07-20 01:27:40:374 [FlutterDriver] Executing Flutter driver command 'execute'
When used below commands await driver.elementClick(byValueKey('quillEditor')); await driver.execute('flutter:enterText', 'I can enter text')
2023-07-20 01:30:50:088 [FlutterDriver@b22f (7bac8551)] Calling AppiumDriver.click() with args: ["eyJmaW5kZXJUeXBlIjoiQnlWYWx1ZUtleSIsImtleVZhbHVlU3RyaW5nIjoicXVpbGxFZGl0b3IiLCJrZXlWYWx1ZVR5cGUiOiJTdHJpbmcifQ","7bac8551-c283-4de7-a494-882636314729"] 2023-07-20 01:30:50:088 [FlutterDriver] Executing Flutter driver command 'click' 2023-07-20 01:30:50:089 [FlutterDriver] >>> {"command":"tap","finderType":"ByValueKey","keyValueString":"quillEditor","keyValueType":"String"} 2023-07-20 01:30:50:519 [FlutterDriver] <<< {"isError":false,"response":{},"type":"_extensionType","method":"ext.flutter.driver"} | previous command tap 2023-07-20 01:30:50:520 [FlutterDriver@b22f (7bac8551)] Responding to client with driver.click() result: {} 2023-07-20 01:30:50:521 [HTTP] <-- POST /wd/hub/session/7bac8551-c283-4de7-a494-882636314729/element/eyJmaW5kZXJUeXBlIjoiQnlWYWx1ZUtleSIsImtleVZhbHVlU3RyaW5nIjoicXVpbGxFZGl0b3IiLCJrZXlWYWx1ZVR5cGUiOiJTdHJpbmcifQ/click 200 434 ms - 12 2023-07-20 01:30:50:522 [HTTP] 2023-07-20 01:30:50:718 [HTTP] --> POST /wd/hub/session/7bac8551-c283-4de7-a494-882636314729/execute/sync 2023-07-20 01:30:50:718 [HTTP] {"script":"flutter:enterText","args":["I can enter text"]} 2023-07-20 01:30:50:719 [FlutterDriver@b22f (7bac8551)] Calling AppiumDriver.execute() with args: ["flutter:enterText",["I can enter text"],"7bac8551-c283-4de7-a494-882636314729"] 2023-07-20 01:30:50:720 [FlutterDriver] Executing Flutter driver command 'execute' 2023-07-20 01:30:50:725 [FlutterDriver@b22f (7bac8551)] Responding to client with driver.execute() result: {"isError":false,"response":{},"type":"_extensionType","method":"ext.flutter.driver"} 2023-07-20 01:30:50:727 [HTTP] <-- POST /wd/hub/session/7bac8551-c283-4de7-a494-882636314729/execute/sync 200 9 ms - 95 2023-07-20 01:30:50:727 [HTTP] 2023-07-20 01:30:50:937 [HTTP] --> POST /wd/hub/session/7bac8551-c283-4de7-a494-882636314729/execute/sync 2023-07-20 01:30:50:937 [HTTP] {"script":"flutter:waitForTappable","args":["eyJmaW5kZXJUeXBlIjoiQnlUZXh0IiwidGV4dCI6IlNhdmUifQ"]} 2023-07-20 01:30:50:938 [FlutterDriver@b22f (7bac8551)] Calling AppiumDriver.execute() with args: ["flutter:waitForTappable",["eyJmaW5kZXJUeXBlIjoiQnlUZXh0IiwidGV4dCI6IlNhdmUifQ"],"7bac8551-c283-4de7-a494-882636314729"] 2023-07-20 01:30:50:939 [FlutterDriver] Executing Flutter driver command 'execute'
For send Key change the locator and try!!
I tried both [byValueKey] and [byType] both didnt worked. tooltip we are not allowed to add for flutter quill in dart
Any update on this issue ?