Драматург Java: выбор раскрывающегося списка переносит параметры в следующий зависимый раскрывающийся список.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Драматург Java: выбор раскрывающегося списка переносит параметры в следующий зависимый раскрывающийся список.

Сообщение Anonymous »

Я использую Playwright с Java для автоматизации теста, включающего два зависимых раскрывающихся списка:
Первый раскрывающийся список (занятость) требует выбора.
После выбора параметра второй раскрывающийся список ( periodOfCoverage) становится видимым и динамически заполняет свои параметры.
В каждом раскрывающемся списке используется поле ввода с такими атрибутами, как
< цитата>
data-test-field-widget="SelectWidget"

Мой рабочий процесс тестирования выглядит следующим образом:< /p>
Нажмите на первый раскрывающийся список, чтобы открыть его.
Получите список параметров (элементы li) и успешно выберите один.
После выбора станет видимым второй раскрывающийся список.
Проблема:
Драматург правильно взаимодействует со вторым полем раскрывающегося списка (он щелкает и открывает его).
Однако вместо взаимодействия с параметрами, специфичными для второго раскрывающегося списка, , похоже, что параметры из первого раскрывающегося списка используются повторно.
Я полагаю, что это может произойти, потому что параметры второго раскрывающегося списка появляются в DOM только после первого раскрывающегося списка. заполняется и выбирается.
И Драматург "удерживает" состояние первого раскрывающегося списка. Локатор (dropdownOption + " li") может по-прежнему указывать на параметры предыдущего раскрывающегося списка вместо обновления второго.
Как я могу гарантировать, что что Драматург взаимодействует с опциями текущего раскрывающегося списка вместо того, чтобы удерживать параметры из предыдущего раскрывающегося списка? Есть ли способ сбросить состояние локатора или явно изменить параметры раскрывающегося списка для каждого взаимодействия?

Код: Выделить всё

 if (element.getAttribute("data-test-field-widget").equals("SelectWidget")) {
if (currentValue == null || currentValue.trim().isEmpty() || currentValue.equals("0")) {
click(element);

int count = dropdownOptionsList.count();
if (count > 0) {
List validIndices = new ArrayList();
for (int i = 0; i < count; i++) {
String optionText = dropdownOptionsList.nth(i).textContent().trim();
if (!optionText.equalsIgnoreCase("Custom") &&
!optionText.isEmpty()) {
validIndices.add(i);
}

}

if (!validIndices.isEmpty()) {
int maxOptions = Math.min(5, validIndices.size());
List restrictedIndices = validIndices.subList(0, maxOptions);

Random random = new Random();
int randomIndex = restrictedIndices.get(random.nextInt(restrictedIndices.size()));
Locator randomOption = dropdownOptionsList.nth(randomIndex);
click(randomOption);
}
}
}
Изображение


Подробнее здесь: https://stackoverflow.com/questions/792 ... ependent-d
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»