Как выбрать выпадающее значение в 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.
Ответы
Ответ 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");