Piszę niektóre testy funkcji przy użyciu Capybara, dla stron zawierających wiele odświeżeń javascript (adres URL pozostanie taki sam, gdy użytkownik kliknie "kontynuuj" przycisk, ale ukryta zawartość zostanie wyświetlona, a wyświetlana zawartość zostanie ukryta, tak że istnieje OGROMNA ilość tekstu/selektorów/itd. w dowolnym punkcie "na" stronie, ale ukryta przed użytkownikiem).Nie mogę wypełnić żadnych ukrytych elementów w Capybara, gdy ignore_hidden_elements jest prawdziwe
Aby przetestować tę funkcjonalność, chcę, aby opcja konfiguracji ignorowania_aplików_czarnych Capybara była prawdziwa, ponieważ najlepiej reprezentuje to doświadczenie użytkownika.
Ale są też pewne wtyczki jQuery na stronie, które używają fantazyjnych grafik do wypełniania podstawowych ukrytych elementów HTML, i chciałbym użyć Capybara, aby wybrać prawidłowe wartości dla tych elementów, zamiast próbować użyć JavaScript, aby ręcznie symulować użytkownika wchodzącego w interakcje z elementem.
W szczególności próbuję przetestować wybrane pola, które mają wyświetlać: brak i są wypełnione wtyczką jQuery, gdy użytkownik wchodzi w interakcje z nimi. Chciałbym móc to zrobić:
select('value', from: 'select_box')
, ale pole wyboru jest ukryte.
Więc próbowałem to:
select('value', from: 'select_box', visible: false)
ale to nie działało. Nie chciałem, aby ignore_hidden_elements zmieniały się na false, ponieważ to źle symuluje użytkownika, a ja musiałbym wrócić i dodać "visible: true" do wielu linii testowania.
Każdy pomysł, jak to zrobić? Czy istnieje opcja, która bardziej starannie anuluje ignore_hidden_elements?
EDIT - Po odpowiedzi Andrey za zwróciłem ignore_hidden_elements false, a potem zrobił to samo kapibary wybrać próbę jak poprzednio:
select 'value', from: 'select_box_id'
i, jak magia, to działało. Kiedy ponownie zmienić ignore_hidden_elements na true i spróbować tej linii:
select 'value', from: 'select_box_id', visible: false
otrzymuję ten błąd:
Failure/Error: select 'value', from: 'select_box_id', visible: false
Capybara::ElementNotFound:
Unable to find select box "select_box_id"
jakaś szansa to nie jest błąd? Czy powinienem to zgłosić?
Jeśli 'wybierz ('wartość', z: 'select_box', visible: false)' nie działa od 'select ('value', from: 'select_box')' with 'Capybara.ignore_hidden_elements = false' również nie działa. Jeśli to działa, należy go uznać za błąd w Capybara. Opcje 'ignore_hidden_elements' i' visible' wpływają na ten sam parametr. –
Potem myślę, że to błąd. Szczegóły powyżej. – Sasha
Jaka jest twoja wersja Capybara? –