2014-09-28 4 views
2

Я использую Geb для написания сценария, который будет проверять опрос много раз со случайным вводом, чтобы убедиться, что ничего не сломалось. Я хотел бы перебирать каждый вход в форме и делать разные вещи в зависимости от типа ввода.Получить тип ввода в Geb

Например:

while ($("form").find("input", j)) { 
    if($("form").find("input", j) == "checkbox"){ 
     //check it sometimes 
    } 
    else if($("form").find("input", j) == "select"){ 
     //select a random option 
    } 
    j++ 
} 

Я не совсем уверен, как опрос будет работать, поэтому я предпочел бы идти вниз страницы, как человек будет вместо делать все галочки, а потом все выбирает и т. д. Можно проверить тип ввода как мой пример?

Кроме того, я замечаю, что повторяю $ ("form"). Find ("input", j). Могу ли я сделать это в переменной, как в jQuery?

ответ

2

Просто введите все свои input и select s в навигаторе и проведите по ним все. Используйте is(String tagName) для обнаружения выберите элементы и @type атрибута аксессор для обнаружения других типов элементов:

def form = $("form") 
def formElements = form.find("input") + form.find("select") 
formElements.each { Navigator element -> 
    if (element.is("select") { 
     //select a random option 
    } 
    if ([email protected] == "checkbox") { 
     //check it sometimes 
    } 
} 
+0

Спасибо за ваш ответ. Могу ли я изменить значение элементов в списке formElements следующим образом? 'element = somevalue' – ham

+0

Нет, вам нужно будет использовать метод' 'value (Object)' 'Navigator' (http://www.gebish.org/manual/current/api/geb/navigator/Navigator. html # value (def)) следующим образом: 'element.value (someValue)' – erdi

+0

@erdi: Как использовать итератор() для перебора элементов? –

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