diff --git a/src/Codeception/Module/DrupalAcceptance.php b/src/Codeception/Module/DrupalAcceptance.php index 17e910c..c163e87 100644 --- a/src/Codeception/Module/DrupalAcceptance.php +++ b/src/Codeception/Module/DrupalAcceptance.php @@ -176,6 +176,12 @@ public function addReferenceFieldItem(FormField $field) { public function fillWysiwygEditor(IdentifiableFormFieldInterface $field, $content) { $selector = $this->webdriver->grabAttributeFrom($field->value, 'id'); $script = "jQuery(function(){CKEDITOR.instances[\"$selector\"].setData(\"$content\")});"; + // Check if CKEditor5 is in use. If so, override the script as global + // registry of editor instances is no longer available and a different + // approach is used to access them via DOM. + if (!empty($this->webdriver->grabAttributeFrom($field->value, 'data-ckeditor5-id'))) { + $script = "document.querySelector(\"#$selector\").nextSibling.querySelector(\".ck-editor__editable_inline\").ckeditorInstance.setData(\"$content\")"; + } $this->webdriver->executeInSelenium(function (RemoteWebDriver $webDriver) use ($script) { $webDriver->executeScript($script); });