2015-06-19 2 views
1

Я хочу протестировать множественный выбор, реализованный через плагин jquery, который называется выбранным.тест 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 

Я думаю, что есть что-то TODO с CSS собственности display: none и прочитать уже много об этом, но не нашли решение для точно моя проблема

EDIT:

Мои Селен Привязки:

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 выбирает. Сначала вы «показываете», а второй - тот, который создан и создан выбранным. Тем не менее таким образом вы можете получить доступ к выбору, установить значение, которое нужно выполнить при тестировании.

Смежные вопросы