Как выбрать дизайн муравья выберите опцию с драматургом или кипарисом

#reactjs #selenium #ant-design-pro #playwright #e2e

Вопрос:

Как выбрать опцию в компоненте ant design Select с помощью любой платформы автоматизации e2e? (Я смогу переписать ваше решение драматургу, которым я лично пользуюсь)

Я знаю, что вопрос может показаться простым, поэтому у вас может возникнуть соблазн предложить что-то вроде await click('#option-id') «Я действительно хочу, чтобы это было так просто». Я перепробовал почти все, начиная с простого щелчка, абсолютного позиционирования мыши virtual={false} , отправки пользовательских событий мыши и клавиатуры, комбинаций тайм-аутов/пылесосов/принудительных щелчков и всего остального, что указано в этом списке, к сожалению, ничего не работает.

Я считаю, что на этот вопрос может ответить только тот, у кого есть такая логика выбора опций в его текущем коде, потому что компонент постоянно обновляется, и любые предположения, которые вы делаете сейчас, будут отличаться примерно через год.

Я также читаю каждый выпуск об этой проблеме, и сопровождающим/разработчикам, похоже, все равно, потому что они не используют такие тесты.

Я не хочу никого отговаривать от ответа, просто чтобы вы знали, что я пытался.

Комментарии:

1. Вы ищете ответы только в JS? Java или Python не помогут?

Ответ №1:

Дескриптор элемента Драматурга содержит селектор «Все запросы«. Если хотя бы часть xpath останется прежней, вы можете использовать $$ селектор.

Функция вернет <Promise<Array<ElementHandle>>> данные, которые вы затем можете разрешить и подключить к индексу выбора, который вы хотите сделать.

Например —

 const selector = "//div[contains(@attribute, 'selection-options-partial-id-text')]"    
const allSelectionOptions = await page.$(selector);
await allSelectionOptions[index].click();
 

Это сработает, если предположить, что все параметры в разделе Select должны иметь общую часть в своем xpath или, если они определены, их data-test-id .

Комментарии:

1. В своем вопросе я заявил, что await click('#option-id') это ничего не делает, вы просто указали способ получения дескрипторов по индексу, что не является проблемой, с которой я сталкиваюсь. @SumitLubal Должен быть тривиальным, чтобы привести рабочий пример.

2. Хорошо, не могли бы вы опубликовать отрывок из того, над чем вы работаете?

3. Вы можете использовать заголовок ant.design/components/select/# и попытаться выбрать опцию с помощью платформы автоматизации по вашему выбору.

4. Я не знаю, что я делал не так раньше, но теперь я смог выбрать опцию без проблем обычными двумя щелчками мыши, я отмечаю ответ выше как принятый, спасибо.