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

Пишу тесты с тестовым кафе. У меня есть поле редактора monaco с некоторым текстом, я хочу удалить текст и вставить другой текст или просто переопределить текст, который у меня есть. Я попробовал этот код, и он вставляет 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
   }
}

person Lior Levy    schedule 30.08.2020    source источник


Ответы (2)


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

Вы можете переопределить содержимое поля, выбрав его через .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');
});

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

person Dmitry Peredreev    schedule 01.09.2020

Вы можете использовать опцию replace, чтобы переопределить существующий текст:

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

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

person Dmitry Peredreev    schedule 31.08.2020
comment
Я пробовал, в редакторе monaco есть скрытое поле ввода. Я тоже пробовал сфокусировать поле и использовать await t.pressKey("backspace") - person Lior Levy; 31.08.2020