Как удалить добавленный элемент в форму в кукловоде
У меня проблема с кукловодом. Я хочу удалить добавленный элемент в форму. Например, у меня есть форма и добавлены некоторые поддельные данные ("пример"). Я хочу удалить этот "пример", не важно, в какой позиции он находится. Я просто хочу удалить этот "пример".
Значит, кукловод добавляет его и удалит на следующем шаге.
Я пытался:
// 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);