如何在selenium中使用选择列表?

Ars*_*ray 11 java selenium

我正在尝试使用基于WebDriver语法的java从selenium中的选择列表中选择一个元素.

我有选择列表

    elements = driver.findElements(By.xpath("//form[@action='inquiry/']/p/select[@name='myselect']"));
    if (elements.size() == 0) {
        return false;
    }
    if (guests != null) {
        //what do I do here?
    }
Run Code Online (Sandbox Code Playgroud)

我怎么做?

nil*_*esh 21

WebElement select = driver.findElement(By.name("myselect"));
Select dropDown = new Select(select);           
String selected = dropDown.getFirstSelectedOption().getText();
if(selected.equals(valueToSelect)){
    //already selected; 
    //do stuff
}
List<WebElement> Options = dropDown.getOptions();
for(WebElement option:Options){
    if(option.getText().equals(valueToSelect)) {
      option.click(); //select option here;       
    }               
}
Run Code Online (Sandbox Code Playgroud)

如果这个比较慢,那就考虑一下

dropDown.selectByValue(value);
or

dropDown.selectByVisibleText(text);
Run Code Online (Sandbox Code Playgroud)


Pav*_*cek 6

适用于Java的一点注意事项:

在我的情况下,当我根据@nilesh的例子编写测试时,我得到一个奇怪的错误,构造函数无效.我的导入是:

import org.openqa.jetty.html.Select;
Run Code Online (Sandbox Code Playgroud)

如果碰巧有类似的错误,则必须更正导入到此:

import org.openqa.selenium.support.ui.Select;
Run Code Online (Sandbox Code Playgroud)

如果你使用第二次导入,一切都会工作.

  • 我不了解你,但就我个人而言,我讨厌 java 在不同的命名空间中有多个具有相同名称的对象 (2认同)