Selenium java: невозможно выбрать значение из раскрывающегося списка на основе Div в OrangeHRMJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Selenium java: невозможно выбрать значение из раскрывающегося списка на основе Div в OrangeHRM

Сообщение Anonymous »

Я работаю над проектом Selenium Java для тестирования демонстрационного сайта OrangeHRM. Мне нужно выбрать значение из выпадающей части «статус статуса занятости», но раскрывающийся список создается с использованием тегов вместо традиционного элемента .
Проблема: < /strong>

Я могу открыть выпадающий список, но я не могу найти и выбрать опцию. Выпачающее меню исчезает, как только я пытаюсь осмотреть или взаимодействовать с ним, что затрудняет местонахождение. Когда раскрывающийся список открыт, как контейнер меню, так и выпадающий триггер находятся на одном и том же уровне DOM (братьев и сестер), что добавляет к выбору опции. < /P>
Что я Пытались: < /strong>

1. Опение раскрывающегося списка (работа ✅) < /p>
WebElement dropdownTrigger = driver.findElement(By.xpath("//label[text()='Employment Status']/parent::div/following-sibling::div//div[@class='oxd-select-text oxd-select-text--active']"));
dropdownTrigger.click();
< /code>
2.2.locating опции выпадения (не работая ❌)

Я попытался использовать Webdriverwait, чтобы дождаться выпадающего контейнера после нажатия:
< /p>
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
WebElement dropdownContainer = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//label[text()='Employment Status']/parent::div/following-sibling::div//div[@class='oxd-select-text oxd-select-text--active']/following-sibling::div[1]")));
< /code>
Тем не менее, это приводит к времени, что означает, что селен не может найти параметры раскрытия. /p>
WebElement dropdownContainer = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//label[text()='Employment Status']/parent::div/following-sibling::div//div[@class='oxd-select-text oxd-select-text--active']/following-sibling::div[@class='oxd-select-dropdown']")));
< /code>
Тем не менее, происходит то же самое время, которое происходит. Элементы внутри раскрывающегося списка (после нажатия на него) и печатать их данные: < /p>
List dropdownElements = dropdownContainer.findElements(By.xpath(".//*"));
System.out.println("Number of elements inside the dropdown: " + dropdownElements.size());
< /code>
Сообщение об ошибке: < /strong>

орг.openqa.selenium.timeoutexception: Ожидаемое условие не удалось: ожидание видимости элемента, расположенного By. xpath: (выпадающий xpath) (пробовал в течение 10 секунд)
< /p>
** Снимк экрана **

ожидаемый результат:


Я хочу найти Параметры раскрываемого списка надежно и нажмите на конкретную опцию (например, «Контракт на полный рабочий день»).

Вопрос: < /strong>

1. Как я могу правильно Найдите и выберите опцию из этого раскрывающегося списка на основе Div в Selenium java?

2. Есть альтернативный подход, который я должен рассмотреть (например, выполнение JavaScript)? Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/794 ... -orangehrm
Ответить

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

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

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

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

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