appium-flutter-driver icon indicating copy to clipboard operation
appium-flutter-driver copied to clipboard

How can we enter some text in flutter quill editor?

Open anu-rachel opened this issue 2 years ago • 9 comments

anu-rachel avatar Jul 17 '23 09:07 anu-rachel

@anu-rachel please describe the problem.

ashwithpoojary98 avatar Jul 19 '23 00:07 ashwithpoojary98

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?

image

anu-rachel avatar Jul 19 '23 02:07 anu-rachel

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.

ashwithpoojary98 avatar Jul 19 '23 12:07 ashwithpoojary98

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

anu-rachel avatar Jul 19 '23 12:07 anu-rachel

Please add Appium logs.

ashwithpoojary98 avatar Jul 20 '23 00:07 ashwithpoojary98

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'

anu-rachel avatar Jul 20 '23 01:07 anu-rachel

For send Key change the locator and try!!

ashwithpoojary98 avatar Jul 22 '23 23:07 ashwithpoojary98

I tried both [byValueKey] and [byType] both didnt worked. tooltip we are not allowed to add for flutter quill in dart

anu-rachel avatar Jul 24 '23 05:07 anu-rachel

Any update on this issue ?

kritika333 avatar Apr 29 '24 01:04 kritika333