2012-12-31 18 views
5

Pracuję z Geb nad automatyzacją testowania aplikacji WWW, która używa ExtJS do prezentacji dużej części swojego interfejsu użytkownika. Znajduję się w sytuacji, w której trzeba kliknąć z wciśniętym klawiszem Ctrl kilka generowanych przez ExtJS komórek tabeli reprezentujących "kategorie". Jak korzystać z Geb, aby klikać w Ctrl te rzeczy?Jak kontrolować i klikać elementy za pomocą Geb?

Odpowiedz

2

Aby wykonać sterowania kliknięcie miałem dostępu do obiektu WebDriver WebElement bezpośrednio za pomocą firstElement:

def categoryItem = $("div.category-item-title", text: categoryName).firstElement() 

Następnie Akcje przedmiot mogą być wykorzystywane, aby dodać wciśniętym klawiszem Control czynności:

Actions actions = new Actions(driver) 
actions = actions.keyDown(Keys.CONTROL) 
actions = actions.click(categoryItem) 
actions = actions.keyUp(Keys.CONTROL) 
actions.perform() 

Note ten kod znajduje się w metodzie instancji obiektu strony.

Oto ten sam kod za pomocą „współdziałać” Erdi mechanizm wymienić:

interact { 
    keyDown(Keys.CONTROL) 
    click($("div.category-item-title", text: categoryName)) 
    keyUp(Keys.CONTROL) 
} 
+1

Zwróć uwagę, że Geb pomagają w podejmowaniu proponowane rozwiązanie jeszcze prostsze - sprawdź sekcję ręcznej o [interakcję zamknięcie] (http: //www.gebish.org/manual/current/navigator.html#drag_and_drop) – erdi

+0

Przeniesienie tej dokumentacji, aby nie było ukryte w sekcji "przeciągnij i upuść", może pomóc zaoszczędzić czas innych. –

+0

Dzięki za sugestię, mamy już bilet na to: http://jira.codehaus.org/browse/GEB-207 – erdi