Top.Mail.Ru
Ответы

Помогите доделать js script

Добрый день. Я в js полный 0, начал его изучать пару дней назад из-за вынужденных обстоятельств. В общем и целом. У меня есть скрипт который на определённом сайте при нажатии на кнопку открывает какое-то окно, далее во вторую колонку вписывает какой-то текст, выбирает из списка нужны и затем сохраняет.
Вот мой скрипт
async function processZone1(zoneValue, addButton) {
addButton.click ();
const smallModal = await waitForElm('div.ModalV2--G14QC.src-styles-commonStyles-module__modalBody--TFAd4');
const zoneNameInput = smallModal.querySelector('input[data-test="select-single-input-data-test"]');
zoneNameInput.focus();
zoneNameInput.value = zoneValue;
zoneNameInput.dispatchEvent(new Event('input', { bubbles: true }));
const saveButton = await waitForElm('button.button--ruJL- size--M--aJZML variant--primary--tMj-Q');
if (saveButton) {
saveButton.click ();
}
await waitForElmToBeRemoved(smallModal);
Всё работает до того момента как нужно выбрать элемент
Т.е после строчки zoneNameInput.dispatchEvent(new Event('input', { bubbles: true }));
Нужно сделать так чтобы при вводе какой-нибудь инфы в строчку вылезает окно с выбором секторов и нажать на самый первый из них. Помогите Пж. Скрины сайта прилагаю

Дополнен

https: //imageup.ru/img153/4760302/2.jpeg.html
https: //imageup.ru/img199/4760303/1.jpeg.html
https: //imageup.ru/img10/4760304/3.jpeg.html
Ссылки на фотки если видно неразборчиво

По дате
По рейтингу
Аватар пользователя
Новичок

Чтобы выбрать элемент из выпадающего списка, можно использовать "keydown", эмулируя нажатие клавиши стрелки вниз и клавиши Enter. Вот как можно модифицировать твой код:

async function processZone1(zoneValue, addButton) {
addButton.click();
const smallModal = await waitForElm('div.ModalV2--G14QC.src-styles-commonStyles-module__modalBody--TFAd4');
const zoneNameInput = smallModal.querySelector('input[data-test="select-single-input-data-test"]');

// Вводим значение
zoneNameInput.focus();
zoneNameInput.value = zoneValue;
zoneNameInput.dispatchEvent(new Event('input', { bubbles: true }));

// Ожидаем появления списка секторов
const sectorList = await waitForElm('ul[data-test="select-single-dropdown-data-test"]');

// Эмулируем нажатие клавиши вниз
zoneNameInput.dispatchEvent(new KeyboardEvent('keydown', { keyCode: 40, key: 'ArrowDown' }));

// Эмулируем нажатие клавиши Enter
zoneNameInput.dispatchEvent(new KeyboardEvent('keydown', { keyCode: 13, key: 'Enter' }));

// Ждем сохранения
const saveButton = await waitForElm('button.button--ruJL- size--M--aJZML variant--primary--tMj-Q');
if (saveButton) {
saveButton.click();
}

await waitForElmT
oBeRemoved(smallModal);
}

Этот код сначала эмулирует ввод значения, затем ожидает появления списка секторов, эмулирует нажатие клавиши вниз для выбора первого элемента и затем клавиши Enter для подтверждения выбора.

Удаленный ответ Ответ удалён