Jeśli chodzi o Capybarę z Webratem to jest jeszcze jeden wkurzający bug, a mianowicie jak strona jest wysoka to czasem nie potrafi klikać w elementy które są poza widoczną aktualnie częścią w oknie przeglądarki. Oczywiście można sobie kupić większy monitor, ale fajnie np. odpalić Xvfb w taki sposób:
Okej, to powiedźcie mi chłopcy jak radzicie sobie z logowaniem, a dokładniej utrzymaniem sesji. Mam taki problem, że loguje się poprawnie, tylko potem i tak jestem nie zalogowany. Czytałem tą dyskusję: http://groups.google.com/group/ruby-capybara/browse_thread/thread/b595974b1daa9e2b# i doprowadziłem u siebie w featurze do tego, że wszędzie w logach mam wywołania www.example.com i dalej nie jestem zalogowany po zalogowaniu (nie zalażnie od tego, czy wypełnia formularzyk czy wysyłam od razud danego logowanie POSTem). Skłaniam się więc do podzielenia opinii, że to nie ciasteczko nie pasuje do obecnej domeny, tylko że ciasteczko nigdy nie zostało wysłane.
Jak jest u Was, nie było z tym problemów?
p.s. W ogołe capybara nie jest taka super hura, że tylko zmieniasz drivery a wszystko hula cały czas. Na przykład jak wypełniam formularzyk logowania w rack-test, to w logach widzę w logach że mnie kontroler loguje. Ten sam scenariusz w selenium i widzę że już mnie nie loguje, Jak na rack-tescie i selenium puszczę scenariusz logowania poprzez do razu wysłanie danych POSTem, to obydwa się zalogują.
Rav, mi się udało właśnie logować. Choć sytuacja jest dość dziwna:
działa tylko w rack-test
wymaga przeklikania formularza logowania, samo wysłanie POSTem danych do logowania nie działa, więc trze było przebudować jeden krok
wymaga w pliku paths.rb, na początku metody path_to nadpisania hosta:
host! "moja.domena:9887"
U ciebie to pewnie będzie localhost:9887, ja jadę na domenie więc się też z tym musiałem użerać.
Co ciekawe, cały czas w logach mam wszędzie www.example.com dla wszystkich requestów, nie zależnie od tego, czy scenariusz przechodzi (nadpisanie hosta) czy nie. Na porcie 9887 startuje mongrel dla testów w trybie selenium. Nie widać aby rack-test był on startowany.
Co do reszty problemów, to nie do końca chyba rozumiem te problemy z hostem. Pod rack test domena jest nieważna, bo rack-test “rozmawia” bezpośrednio z aplikcają.
Czy ktoś już używał Capybary i Selenium na poważnie?
Jak póki co się jedynie bawię i napotkałem na parę problemów:
1/ Zauważyłem, że testy mi nie przechodzą jeśli w tle mam odpaloną przeglądarkę. Test wiesza się np. w momencie wpisywania wartości do pola tekstowego i po chwili pada. Wydaje mi się, że może to być problem z menadżerem okiem, firefoxem lub po prostu tym, że przeglądarka nagle dostaje/traci focus i selenium głupieje.
Problem nie występuje gdy odpalam FF z użyciem Xvfb (czyli okienko FF w ogóle się nie pojawia).
2/ Jak w Capybarze z poziomu scenario dostać się bezpośrednio do selenium? W webracie można było zrobić coś takiego:
When /I do something/ do
selenium.do_something
end
3/ Da się jakoś robić screenshoty ze scenario, które padły?[/quote]
Ja używam na poważnie. Spory projekt (Code LOC: 26395 Test LOC: 30960 Code to Test Ratio: 1:1.2), część kodu ma z pięć lat i jest skatowana przez hordy słabych podwykonawców. Stare testy w Firewatir, nowe w Capybarze - wspólnie umożliwiły (w miarę) bezbolesną migrację do 2.3.8. Capybara sprawdza się nieźle, dobrze pracuje z parallel_test wieć będziemy migrować testy Watirowe.