Как удалить добавленный элемент в форму в кукловоде

У меня проблема с кукловодом. Я хочу удалить добавленный элемент в форму. Например, у меня есть форма и добавлены некоторые поддельные данные ("пример"). Я хочу удалить этот "пример", не важно, в какой позиции он находится. Я просто хочу удалить этот "пример".

Значит, кукловод добавляет его и удалит на следующем шаге.

Я пытался:

// fake data
const metadatatest = {
text: 'example,
}


describe('Should be navigate through details', () => {
it('can navigate through detail', async () => {

// this adds fake data successfully

await page.waitForSelector('[data-testid="appCard"]')
await page.click('[data-testid="appCardDetails"]')
await page.waitForSelector('[data-testid="overviewSectionMetadataForm"]')
await page.click('[data-testid="overviewSectionMetadataEditButton"]')
//await page.$eval('[data-testid="metadataInput"]', el => el.value = 'example')
await page.type('[data-testid="metadataInput"]', metadatatest.text)
await page.waitForSelector('[data-testid="metadataInput"]')
await Promise.all([
  page.click('[data-testid="overviewSectionMetadataEditButton"]'),
]);

// I want to delete this

})
})

Я также пытался использовать

await page.keyboard.press('Backspace')
await page.keyboard.press('Clear')
await page.keyboard.press('Delete')

но не повезло.

любая помощь, пожалуйста!

1 ответ

Решение

Итак, вы спрашиваете об удалении текста из поля ввода, правильно ли я это читаю? У Кукловода нет встроенного метода для этого, но я нашел обходной путь, который сделает это за вас.

Во-первых, вам нужно нажать 3 раза на поле ввода, которое вы хотите очистить. Это действует как действие " выбрать все" для всего текста, введенного в этот элемент:

await page.click(selector, { clickCount: 3 });

Теперь вы можете использовать вашу предыдущую попытку очистить текст:

await page.keyboard.press('Backspace');

Обновление 1:
Ваш окончательный код для очистки и последующего ввода нужного текста в поле ввода должен выглядеть примерно так:

await page.click('[data-testid="metadataInput"]', { clickCount: 3 });
await page.keyboard.press('Backspace');
await page.type('[data-testid="metadataInput"]', metadatatest.text);
Другие вопросы по тегам