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