Ответ 1
Использование -
new Select(driver.findElement(By.id("gender"))).selectByVisibleText("Germany");
Конечно, вам нужно import org.openqa.selenium.support.ui.Select;
Как выбрать элемент из выпадающего списка, например, пола (например, мужчины, женщины), используя Selenium WebDriver с Java?
Я пробовал это
WebElement select = driver.findElement(By.id("gender"));
List<WebElement> options = select.findElements(By.tagName("Male"));
for (WebElement option : options) {
if("Germany".equals(option.getText()))
option.click();
}
Мой выше код не работает.
Использование -
new Select(driver.findElement(By.id("gender"))).selectByVisibleText("Germany");
Конечно, вам нужно import org.openqa.selenium.support.ui.Select;
Просто оберните свой 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");
Счастливое кодирование:)
Тег, который вы должны упомянуть как "опция", если текст с пространством мы можем использовать этот метод, он должен работать.
WebElement select = driver.findElement(By.id("gender"));
List<WebElement> options = select.findElements(By.tagName("option"));
for (WebElement option : options) {
if("Germany".equals(option.getText().trim()))
option.click();
}
Google "select item selenium webdriver" вызывает Как установить параметр, выбранный с помощью клиента Selenium WebDriver (selenium 2.0) в ruby в качестве первого результата. Это не Java, но вы должны иметь возможность переводить его без особых усилий. https://sqa.stackexchange.com/questions/1355/what-is-the-correct-way-to-select-an-option-using-seleniums-python-webdriver входит в пятерку лучших, опять же не Java, но API очень похож.
WebElement selectgender = driver.findElement(By.id("gender"));
selectgender.sendKeys("Male");
Вы можете использовать класс селея WebDriver класса "Select", опубликованный Майтрейей. Извините, но я немного смущен, потому что для выбора пола из раскрывающегося списка почему сравнивать строку с "Германией". Вот фрагмент кода,
Select gender = new Select(driver.findElement(By.id("gender")));
gender.selectByVisibleText("Male/Female");
Импортируйте import org.openqa.selenium.support.ui.Select;
после добавления вышеуказанного кода.
Теперь будет выбран пол, который вы когда-либо давали (мужчина/женщина).
WebElement select = driver.findElement(By.id("gender"));
List<WebElement> options = select.findElements(By.tagName("option"));
for (WebElement option : options) {
if("Germany".equals(option.getText()))
option.click();
}
Чтобы найти этот выпадающий элемент
Select gender = new Select(driver.findElement(By.id("gender")));
Чтобы получить список всех элементов в раскрывающемся списке
for(int j=1;j<3;j++)
System.out.println(gender.getOptions().get(j).getText());
Чтобы выбрать его через видимый текст optoion
gender.selectByVisibleText("Male");
Чтобы выбрать его по индексу
gender.selectByIndex(1);
public class checkBoxSel {
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
EventFiringWebDriver dr = null ;
dr = new EventFiringWebDriver(driver);
dr.get("http://www.google.co.in/");
dr.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
dr.findElement(By.linkText("Gmail")).click() ;
Select sel = new Select(driver.findElement(By.tagName("select")));
sel.selectByValue("fil");
}
}
Я использую GOOGLE LOGIN PAGE для проверки опции seletion. Приведенный выше пример заключался в том, чтобы найти и выбрать язык "Filipino" из выпадающего списка. Я уверен, что это решит проблему.