如何通过geb测试select2

时间:2014-01-07 06:40:58

标签: jquery grails testing groovy geb

我正在尝试从select2 dropDown列表中选择选项,但我无法这样做这是代码

enter code here

 <select id="addedLanguageId" class="input-large select2-me
 select2-offscreen"    name="language.id" style="width: 200px;"
 tabindex="-1"> <option value="">Select a language</option> <option
 value="1">Aboriginal Dialects</option> <option
 value="2">Afrikaans</option> <option value="3">Ainu</option> <option
 value="4">Akkadian</option> <option value="5">Albanian</option>
 </select>`

我尝试了很多内容,例如$("form").language.id=["4"]或在selectLang{$('#language.id')}等页面中添加了代码,并在selectLang.value('20')等测试中添加了代码。我使用了其他概念,如selectLang{$('#language.id')}

dropdownSelectedText {selectLang.find('option', value:selectLang.value()).text()} 

在页面中并完成测试:

when:
selectLang='Akkadian' 
then:
dropdownSelectedText=='Akkadian'
selectLang.value()=='Akkadian'

2 个答案:

答案 0 :(得分:1)

编辑:在查看我的一些geb测试之后,我正在设置这样的select2值(使用geb 0.9.2):

在页面对象中为表单定义选择器:

static content = {
    myForm { $("form") }
}

然后在测试中,您可以像这样设置select2值:

myForm."language.id" = "4"

答案 1 :(得分:0)

请试试这个。据我所知,这不是select2问题。我在下面写了硒测试。它适用于select和select2两者。

WebDriver driver=new FirefoxDriver();
    driver.get("http://ivaynberg.github.io/select2/");
    WebElement select=driver.findElement(By.id("e1"));
    List<WebElement> options = select.findElements(By.tagName("option"));
    for(WebElement option : options){
        if(option.getText().equals("California")) {
            option.click();
            break;
        }
    }