Как удалить или заменить текст в редакторе monaco с помощью testcafe?

#javascript #angular #testing #testcafe #monaco-editor

#javascript #angular #тестирование #testcafe #monaco-editor

Вопрос:

Я пишу несколько тестов с помощью testcafe. У меня есть поле редактора Монако с некоторым текстом, я хочу удалить текст и вставить другой текст или просто переопределить текст, который у меня есть. Я попробовал этот код, и он вставляет «someText» после символов в первой строке. Я использовал эту строку кода:

 await t.typeText(Selector('.parent-class .inputarea'), someText);
  

есть идеи?

монако до:

 {
   "data": {
      "a": 1,
      "b": 2,
      "c": 3
   }
}
  

монако после:

 {{"data": { "newField": "text" }}
   "data": {
      "a": 1,
      "b": 2,
      "c": 3
   }
}
  

Ответ №1:

Вы можете использовать replace опцию для переопределения существующего текста:

await t.typeText(Selector('.parent-class .inputarea'), someText, { replace: true });

Для получения дополнительной информации см. Метод TypeText.

Комментарии:

1. Я пробовал, в редакторе monaco есть скрытое поле ввода. Я также попытался сфокусировать файл и использовать await t.pressKey("backspace")

Ответ №2:

Я пытался взаимодействовать с текстом в редакторе Monaco Playground, и это оказалось действительно непросто.

Вы можете переопределить содержимое поля, выбрав его через .pressKey('ctrl a') , а затем используя .typeText() для ввода нового содержимого.

 
fixture `monaco`
    .page `https://microsoft.github.io/monaco-editor/playground.html`;

test('Monaco Ctrl A', async t => {
    await t
        .switchToIframe(Selector('#runner'))
        .click(Selector('#container').find('.inputarea'))
        .pressKey('ctrl a')
        .typeText(Selector('#container').find('.inputarea'), 'typetext');
});
  

Вы можете использовать другие действия со страницей для достижения аналогичного результата.