2014-09-28 68 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 s和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 2014-09-29 18:04:44

+0

不,您需要在'Navigator'上使用['value(Object)']方法(http://www.gebish.org/manual/current/api/geb/navigator/Navigator。 html#value(def)),如下所示:'element.value(someValue)' – erdi 2014-09-30 09:42:02

+0

@erdi:如何使用迭代器()遍歷元素? – 2016-09-15 07:00:27