Điểm:0

Làm cách nào để kiểm tra trường định dạng văn bản CKEditor 5 với Behat/Mink?

lá cờ cn

Drupal 10 đang chuyển từ CKEditor 4 sang 5.

Vì vậy, tôi đã cài đặt mô-đun CKEditor 5 thử nghiệm và đang cố cập nhật các bài kiểm tra Behat của mình để sử dụng CKEditor 5.

Tôi đang sử dụng thử nghiệm @javascript trong Behat trên CircleCI để kiểm tra trang web Drupal 8 của mình.

Tiêu chuẩn Tôi điền vào "trường của tôi" với "giá trị" bước không thành công cho các lĩnh vực sử dụng CKEditor. Ví dụ: đối với trường văn bản dài có nhãn Câu hỏi, nếu tôi thêm một bước:

Và tôi điền vào "Câu hỏi" với "Điều này có hiệu quả không?"

Sau đó, tôi nhận được lỗi: Phần tử không thể tương tác

Như được mô tả trong câu hỏi này về CKEditor 4, đây là một ý chính của johnennewdeeson nó hoạt động với CKEditor 4 (về cơ bản sử dụng JS để tìm phiên bản trình soạn thảo và thiết lập dữ liệu), nhưng nó không hoạt động với CKEditor 5 (CKEDITOR không được xác định lỗi).

Vậy làm cách nào tôi có thể đặt giá trị của trường định dạng văn bản trong Behat bằng CKEditor 5?

lá cờ cn
CKEditor chỉ được sử dụng ở giao diện người dùng, nó không ảnh hưởng đến việc lưu dữ liệu trường - có thể bạn chỉ cần cung cấp cột `định dạng` cũng như `giá trị`? Nếu bạn có thể mô tả rõ hơn một chút ý của bạn là "bước [...] tiêu chuẩn không thành công" thì điều đó có thể giúp ích gì không?
lá cờ cn
@Clive Đã cập nhật thêm thông tin.
Điểm:1
lá cờ cn

Như được mô tả trong Làm cách nào để lấy đối tượng phiên bản trình soạn thảo từ phần tử DOM?, bạn có thể tìm kiếm ck-editor__editable và sử dụng nó để xác định phiên bản trình soạn thảo cụ thể mà bạn cần thao tác.

Sau đây là một ví dụ làm việc. Lưu ý rằng bạn phải thay thế bất kỳ dấu gạch dưới nào bằng dấu gạch nối trong tên máy cho $field_hyphenated_machine_name.

  /**
   * Nhập văn bản bằng CKEditor.
   *
   * @Sau đó, tôi điền vào trường wysiwyg :field_hyphenated_machine_name với :value
   * @Sau đó, tôi nhập :value cho trường wysiwyg :field_hyphenated_machine_name
   */
  hàm công khai iFillInWysiwygOnFieldWith($field_hyphenated_machine_name, $value) {
    # https://ckeditor.com/docs/ckeditor5/latest/support/faq.html#how-to-get-the-editor-instance-object-from-the-dom-element
    $ckeditor5_drupal_editable_element = "div.form-item-$field_hyphenated_machine_name-display-0-value .ck-editor__editable";

    $this->getSession()
      ->executeScript(
        "
        const domEditableElement = document.querySelector(\"$ckeditor5_drupal_editable_element\");
        nếu (domEditableElement.ckeditorInstance) {
          const editorInstance = domEditableElement.ckeditorInstance;
          nếu (editorInstance) {
            editorInstance.setData(\"$value\");
          } khác {
            ném Ngoại lệ mới ('Không thể lấy phiên bản trình chỉnh sửa!');
          }
        } khác {
          ném ngoại lệ mới ('Không thể tìm thấy phần tử!');
        }
        ");
  }

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.