In meiner App habe ich eine Seite, die ein Modal öffnet, das einige Inhalte darin aktualisiert und sich nach unbestimmter Zeit selbst ablehnt (und unsichtbar wird). In meiner Spezifikation versuche ich zu warten, bis der Modal entlässt. Meine Strategie ist Capybara Warten auf den Inhalt des Modal zu haben, unsichtbar zu werden, indem SieCapybara kann kein verstecktes Element mit Text finden
expect(page).to have_css('.hidden-element', visible: :hidden, text: 'Hidden Content')
aber es sieht aus wie Capybara nicht in der Lage sein, den Text eines verborgenen Elements zu bekommen, und ich erhalte die Fehler:
expected to find css ".hidden-element" with text "Hidden Content" but there were no matches. Also found "", which matched the selector but not all filters.
Es würde passieren, wenn ich :all
oder false
tun, aber das ist nicht das, was ich will:
expect(page).to have_css('.hidden-element', visible: :all, text: 'Hidden Content')
Da ich nicht meine ap ändern könnte p, ich frage mich, warum das nicht funktioniert hat oder was der beste Weg ist, das in diesem Fall zu erreichen. Vielen Dank!
Ich verwende RSpec, Capybara, Capybara-webkit.
Vielen Dank für den Vorschlag! Ich denke in meinem Fall ist es nicht mit dem Fall verbunden. Es funktioniert auch nicht, wenn der Text beispielsweise "1234" lautet. Ich fühle, dass sich das 'visible:: hidden' und' text: '1234' 'gegenseitig ausschließen, und sie funktionieren perfekt alleine. – 322896
@ 322896 Welche Version von Capybara benutzt du? –
@ 322896 Nach dem Testen Dies sieht aus, als wäre dies eine Einschränkung von Capybara im Moment, wenn ich die Option "visible:: hidden" verwende, habe ich meine Antwort mit einer möglichen Problemumgehung aktualisiert –