Первый раскрывающийся список (занятость) требует выбора.
После выбора параметра второй раскрывающийся список ( 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