如何使用 testcafe 删除或替换摩纳哥编辑器上的文本?

How to delete or replace text on monaco editor using testcafe?

我正在用 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
   }
}

您可以使用 replace 选项覆盖现有文本:

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

有关详细信息,请参阅 the typeText method

我尝试与 Monaco Editor 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');
});

您可以使用其他 page actions 来获得类似的结果。