Подтвердить что ты не робот

Как выбрать выпадающее значение в Selenium WebDriver с помощью Java

Я новичок в селене, в настоящее время я работаю над селеновым webdriver. Я хочу выбрать значение из выпадающего списка. Идентификатор id = periodId, и у меня есть выбор: последние 52 недели.

Вот HTML-код:

<select id="periodId" name="period" style="display: none;">
    <option value="l4w">Last 4 Weeks</option>
    <option value="l52w">Last 52 Weeks</option>
    <option value="daterange">Date Range</option>
    <option value="weekrange">Week Range</option>
    <option selected="" value="monthrange">Month Range</option>
    <option value="yeartodate">Year To Date</option>
</select>

Пожалуйста, предложите мне несколько способов щелкнуть раскрывающийся список.

Я попытался с приведенными выше примерами строк, но получаю ошибку, такую как Элемент в настоящее время не виден и поэтому может не взаимодействовать с Продолжительность команды или время ожидания: 32 миллисекунды значения раскрывающихся списков - это формат виджета множественного выбора jquery.

4b9b3361

Ответ 1

Просто оберните свой WebElement в Select Object, как показано ниже.

Select dropdown = new Select(driver.findElement(By.id("identifier")));

Как только это будет сделано, вы можете выбрать требуемое значение тремя способами. Рассмотрим HTML файл, подобный этому

<html>
<body>
<select id = "designation">
<option value = "MD">MD</option>
<option value = "prog"> Programmer </option>
<option value = "CEO"> CEO </option>
</option>
</select>
<body>
</html>

Теперь для определения раскрывающегося списка

Select dropdown = new Select(driver.findElement(By.id("designation")));

Чтобы выбрать свой вариант, скажите "Программист", вы можете сделать

dropdown.selectByVisibleText("Programmer ");

или

dropdown.selectByIndex(1);

или

 dropdown.selectByValue("prog");

Ответ 2

Если вы хотите написать все в одной строке, попробуйте

new Select (driver.findElement(By.id("designation"))).selectByVisibleText("Programmer ");

Ответ 3

Как обсуждалось выше, нам нужно реализовать Select Class в Selenium, и далее мы можем использовать различные доступные методы, такие как: enter image description here

Ответ 4

Фактически select выбирает, но не помещает выбранные значения в соответствующее поле. Где интересно, что нижеприведенный фрагмент отлично работает

driver.findElement(By.name("period")).sendKeys("Last 52 Weeks");

Ответ 5

код для выбора раскрывающегося списка с помощью xpath

Select select = new 
Select(driver.findElement(By.xpath("//select[@id='periodId']));

код для выбора конкретной опции с помощью selectByVisibleText

select.selectByVisibleText(Last 52 Weeks);

Ответ 6

Вы можете использовать следующие методы обработки выпадающего списка в селене.

  • driver.selectByVisibleText( "Текст" );
  • driver.selectByIndex(1);
  • driver.selectByValue( "проги" );

Более подробную информацию вы можете найти http://www.codealumni.com/handle-drop-selenium-webdriver/ этот пост.

Он определенно поможет вам в решении ваших запросов.

Ответ 7

Согласитесь с ответом KodS. Кроме того, вам необходимо импортировать org.openqa.selenium.support.ui.Select; для выбора для работы.

Ответ 8

WebDriver driver = new FirefoxDriver();
WebElement identifier = driver.findElement(By.id("periodId"));
Select select = new Select(identifier);
select.selectByVisibleText("Last 52 Weeks");

Ответ 9

Я не пробовал в Selenium, но для теста Galen это работает,

var list = driver.findElementByID( "periodID" );//это вернет веб-элемент

list.click();//это откроет раскрывающийся список.

list.typeText( "14w" );//это выберет опцию "14w".

Вы можете попробовать это в селене, работа с галеном и селеном аналогична.

Ответ 10

Сначала Импортируйте пакет как:

import org.openqa.selenium.support.ui.Select;

тогда пишите в одну строку как:

new Выберите (driver.findElement(By.id( "sampleid" ))). selectByValue ( "SampleValue" );

Ответ 11

Попробуйте следующее:

driver.findElement(By.name("period")).sendKeys("Last 52 Weeks");