2015-06-19 47 views
1

我想測試一個通過jquery插件實現的多選select selected。geb/selenium測試,選擇了多選

選擇的HTML:

<select id="pickUsers" name="users" multiple="true" class="many-to-many" > 
<option value="1" >me</option> 
<option value="3" >leader</option> 
<option value="2" >test</option> 
</select> 

的例外是:

org.openqa.selenium.ElementNotVisibleException: Element is not currently visible and so may not be interacted with 

我認爲它有一些待辦事項與display: none CSS屬性和閱讀已經很多關於它,但沒有找到一個解決方案正是我的問題

編輯:

個我的硒綁定是:

users {$("select", name:"users")} 

我試着與幾個任務:

users = ["me", "test"] or 

users = [1,2,3] 

users = ["1","2","3"] 
+0

您使用的是哪種硒語言綁定? – alecxe

+0

我用綁定更新了我的問題 – user3667018

回答

0

遇到同樣的問題。 Geb只能訪問可見的元素。 在這種情況下,選擇將顯示無添加到選擇(<select ... style="display:none">)。因此,您無法使用$('')選擇器訪問它。

一個解決辦法是:

在您的測試:

  1. 刪除樣式屬性。 js.exec("document.getElementsByTagName('select')[0].removeAttribute('style')")

    這是我能想到的,因爲蓋布只有getAttribute$('')選擇的唯一途徑,但不具有的setAttribute。

  2. 一套新的選擇值值 $('select').value(1)

注意:這不是一個完美的解決方案,因爲你會得到2種選擇。首先,你「取消隱藏」,第二個是由選定的人創建和設計的。儘管如此,您可以通過這種方式訪問​​select,並通過測試設置值。