如何使用Java在Selenium WebDriver中选择并获取下拉值

时间:2016-05-02 07:23:47

标签: java selenium selenium-webdriver

我的代码是

<select class="form_input_select bx-def-font" name="Sex[0]">
     <option value="Male">Man</option>                 
  <option value="Female">Woman</option>                   
<option value="Other" selected="selected">_Other</option>
    </select>

我正在使用以下代码...

 Select se=new Select(driver.findElement(By.name("Sex[0]")));
se.selectByIndex(0);
Thread.sleep(2000);

光标移动Man,但Man不显示,仅显示_Others

请帮助我解决我的问题我已经应用了越来越多的语法但是我不能成功地向人展示......

7 个答案:

答案 0 :(得分:1)

您可以使用getText()来获取所选文字。

Select se=new Select(driver.findElement(By.name("Sex[0]")));
WebElement option = se.getFirstSelectedOption();
String gender=option.getText;

或使用以下选项之一

se.selectByVisibleText("Man");
se.selectByIndex(0);
se.selectByValue("Male");

答案 1 :(得分:0)

尝试使用: -

se.selectByValue("Male");

OR

se.selectByVisibleText("Man");

OR

使用javascriptexecutor

答案 2 :(得分:0)

您认为在从下拉列表中选择任何选项之前,请在DOM中显示所有选项,如下所示。

driver.findElement(By.xpath("path to drop down upon click it will show 
the dd with values")).click();

现在,一旦选项在页面上可见,请使用从DD

中选择选项的方式
Select se=new Select(driver.findElement(By.name("Sex[0]")));
se.selectByIndex(0);
Thread.sleep(2000);

答案 3 :(得分:0)

driver.findElement(By.name(&#34;性别[0]&#34))。的SendKeys(&#34;曼&#34);

最后我找到了解决方案 谢谢大家...

答案 4 :(得分:0)

要从下拉列表中选择任何选项,我们必须单击下拉元素并选择所需的选项。请查看以下示例代码:

WebElement gender = driver.findElement(By.name("Sex[0]"));
gender.click();
Select selectGender = new Select(gender);
selectGender.selectByValue("Male");
// or
// you can use any of below functions of Select class
selectGender.selectByIndex(0);
// or
selectGender.selectByVisibleText("Male");

希望这有帮助

答案 5 :(得分:0)

您可以使用以下代码从下拉列表中选择值。

我们为Select创建了匿名项目。

new Select(driver.findElement(By.id("mainOrderForm:orderType"))).selectByVisibleText("Factory Order");

                        OR

new Select(driver.findElement(By.id("mainOrderForm:orderType"))).selectByIndex(Index_No.);

                        OR

new Select(driver.findElement(By.id("mainOrderForm:orderType"))).selectByValue("Value");

答案 6 :(得分:0)

您可以使用以下代码。只需尝试至少是否在控制台上打印所选选项

n ≥ n₀