Я работаю над проектом Selenium Java для тестирования демонстрационного сайта OrangeHRM. Мне нужно выбрать значение из выпадающей части «статус статуса занятости», но раскрывающийся список создается с использованием тегов вместо традиционного элемента . Проблема: < /strong>
Я могу открыть выпадающий список, но я не могу найти и выбрать опцию. Выпачающее меню исчезает, как только я пытаюсь осмотреть или взаимодействовать с ним, что затрудняет местонахождение. Когда раскрывающийся список открыт, как контейнер меню, так и выпадающий триггер находятся на одном и том же уровне DOM (братьев и сестер), что добавляет к выбору опции. < /P>
Что я Пытались: < /strong>
Я попытался использовать 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)? Спасибо.
Я работаю над проектом Selenium Java для тестирования демонстрационного сайта OrangeHRM. Мне нужно выбрать значение из выпадающей части «статус статуса занятости», но раскрывающийся список создается с использованием тегов вместо традиционного элемента . [b] Проблема: < /strong>
Я могу открыть выпадающий список, но я не могу найти и выбрать опцию. Выпачающее меню исчезает, как только я пытаюсь осмотреть или взаимодействовать с ним, что затрудняет местонахождение. Когда раскрывающийся список открыт, как контейнер меню, так и выпадающий триггер находятся на одном и том же уровне DOM (братьев и сестер), что добавляет к выбору опции. < /P> Что я Пытались: < /strong>
Я попытался использовать 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> ** Снимк экрана **
ожидаемый результат: [/b]
Я хочу найти Параметры раскрываемого списка надежно и нажмите на конкретную опцию (например, «Контракт на полный рабочий день»).
Вопрос: < /strong>
1. Как я могу правильно Найдите и выберите опцию из этого раскрывающегося списка на основе Div в Selenium java?
2. Есть альтернативный подход, который я должен рассмотреть (например, выполнение JavaScript)? Спасибо.