Culerity i selekcja po atrybutach CSS

Właśnie zaczynam bawić się z culerity. Potrzebuje teraz znajdywać div po nazwie klasy, tekście w środku i atrybucie CSS. Dwa pierwsze nie ma problemu, trzeciego nie mogę ogarnąć. Tak się składa że owy div raz jest ukrywany a raz jest widoczny, i moje odpowiedniki I should see / I should not see muszą umieć zauważyć tę subtelną różnicę.

Metodą prób i błędów zauważyłem że jako selektor mogę dać :style, tylko za cholerę nie wiem, jaką wartość mam mu podać. Dawałem tam display: none; i visibility: hidden; zarówno jako stringi jak i regexpy i nico z tego nie wynikło.

[quote=Piotr Misiurek]Właśnie zaczynam bawić się z culerity. Potrzebuje teraz znajdywać div po nazwie klasy, tekście w środku i atrybucie CSS. Dwa pierwsze nie ma problemu, trzeciego nie mogę ogarnąć. Tak się składa że owy div raz jest ukrywany a raz jest widoczny, i moje odpowiedniki I should see / I should not see muszą umieć zauważyć tę subtelną różnicę.

Metodą prób i błędów zauważyłem że jako selektor mogę dać :style, tylko za cholerę nie wiem, jaką wartość mam mu podać. Dawałem tam display: none; i visibility: hidden; zarówno jako stringi jak i regexpy i nico z tego nie wynikło.[/quote]
Celerity nie ma chyba możliwości analizowania styli, ale jeżeli używasz jquery/prototype, to imho najłatwiejszym sposobem jest wykorzystanie execute_script (wykonanie javascripta w celerity).

a w jquery możesz już:

  jQuery("#wrapper .inner").is(":visible");

Okej, zleciał mi na to cały dzień i dwa razy naciąłem się na ten sam numer. Najpierw zaciągnąłem do pracy nokogiri i zacząłem korzystać z selektorów CSS. Męczyłem się strasznie, jak sprawdzić warunek display:none dla style. Próbowałem ~= i *= no i nic nie działało. Męczyłem i męczyłem i okazało się że źle myślałem - display: none mam w klasie CSS a nie w style= i parser nie mógł mi tego znaleźć.

No to potem jadę z tym co zaproponowałeś drogus. I jest ten sam myk - żeby działało display: none musi być jako style=‘display: none’, a nie w klasie CSS’a. Okej, mogę wyjebać ten display na zewnątrz do style, ale dlaczego nie śmiga to z deklaracją w klasie CSS, skoro mam do czynienia z “przeglądarką” i jQuery?

[quote=Piotr Misiurek]Okej, zleciał mi na to cały dzień i dwa razy naciąłem się na ten sam numer. Najpierw zaciągnąłem do pracy nokogiri i zacząłem korzystać z selektorów CSS. Męczyłem się strasznie, jak sprawdzić warunek display:none dla style. Próbowałem ~= i *= no i nic nie działało. Męczyłem i męczyłem i okazało się że źle myślałem - display: none mam w klasie CSS a nie w style= i parser nie mógł mi tego znaleźć.

No to potem jadę z tym co zaproponowałeś drogus. I jest ten sam myk - żeby działało display: none musi być jako style=‘display: none’, a nie w klasie CSS’a. Okej, mogę wyjebać ten display na zewnątrz do style, ale dlaczego nie śmiga to z deklaracją w klasie CSS, skoro mam do czynienia z “przeglądarką” i jQuery?[/quote]
Jeżeli kod is(":visible") zwraca Ci nieprawidłową wartość w zależności od tego czy display: none jest w klasie czy w stylu, to znaczy, że celerity niepoprawnie obsługuje tego typu rzeczy.

Wyjście jest tylko jedno. Ja mam podłączonego do cucumbera firewatira i część scenariuszy odpalam tylko w przeglądarce. Nie jest to idealne rozwiązanie, ale wolę w przeglądarce uruchomić 5 scenariuszy niż 70 ;] W jednym z projektów z konieczności używam selenium (iframe, zewnętrzne serwisy, bardzo dużo javascriptów, celerity na 99% by na tym poległo) i 10 scenariuszy mi się wykonuje jakieś 7 minut :wink: Jest to co prawda dość ciężka aplikacja, ale i tak różnica jest duża.

Jeżeli chodzi o firewatira, to mam w planach posta o tym jak poradzić sobie z debugowaniem celerity/culerity (ale to pewnie po weekendzie najwcześniej) - będzie tam trochę o viewerach i “rails goodies”.