2011-11-28 10 views
7

Próbuję sprawdzić pole wyboru w moim teście ogórka, ale nie mogę wymyślić, jak powiedzieć, aby wyszukiwać przez cokolwiek innego niż identyfikator, nazwisko lub etykieta. Ciągle na uzyskiwanie ten błąd:Ogórek Kapibara znajdź pole wyboru inne niż id, nazwa lub etykieta

cannot check field, no checkbox with id, name, or label 'xxxx' found 

Dodałem atrybut „identyfikator” dla każdego wyboru, z unikalnymi wartościami i chciałby znaleźć pole przez te warunki.

Odpowiedz

7

Czy masz na myśli, że do każdego pola dodano nowy atrybut o nazwie identifier? Jeśli tak, to być może uda się je znaleźć za pomocą lokalizatora (CSS. set -ing pole do true kontroli, użyj false aby go odznaczyć)

find(:css, "[identifier='#{my_checkbox_identifier}']").set(true)

+0

Tak, masz rację - mam na myśli I dodał, że jako atrybut. Jednak gdy próbuję tego kodu, pojawia się ten błąd: Nie można znaleźć css "[identifier =" Check: NCO '] "(Capybara :: ElementNotFound). Wygenerowany HTML to:

+0

Nie miałem czasu wypróbować tego kodu, być może trzeba określ element np "input [identyfikator = ..." –

+0

Nadal nie działa dla mnie (nie można znaleźć css "input [identyfikator = \" Check: NCO \ "]" (Capybara :: ElementNotFound)). –

2

sposoby na to pytanie jest raczej stara, odpowiedź może być przydatna komuś, gdzieś. Znalazłem następujące do pracy:

find(:xpath, "//input[@identifier='my_checkbox_identifier']").set(true)