Irgendwann im letzten Monat (Juni 2013) begannen mehrere unserer Capybara-Tests, hauptsächlich weil die Knöpfe, auf die sie klicken, nicht sichtbar sind. Im Idealfall würde ich gerne herausfinden, was sich geändert hat. Wir sind derzeit auf Selen-Webdriver 2.33, aber ich habe versucht, zurück zu 2.29 und es funktioniert immer noch nicht. Gegenwärtig laufen wir nur gegen Firefox und vielleicht liegt das an einer neueren Version von Firefox.
Abgesehen davon kann ich nicht herausfinden, wie man die Knöpfe in die Ansicht scrollen kann. Von dem, was ich erhalte, kann ich scrollIntoView benutzen, aber nicht sicher, wie man es im Capybara-Schritt nennt. Ich habe Variationen versucht:
%Vor%Aber ohne Glück, denn find_button selbst funktioniert nicht.
Hinweis: Wir wählen basierend auf dem Text der Schaltfläche aus. Die Auswahl anhand der ID ist zwar möglich, erfordert aber viele Änderungen an unseren UI-Tests. Daher möchten wir dies vermeiden.
Ich habe normalerweise ein Modul JavascriptDriver
, das ich verwende, um Selenium-Funktionalität in einen Test einzuschließen, und dort definiere ich eine Hilfsmethode:
Und dann können Sie in Ihrem Test diesen Code verwenden, indem Sie ein normales Capybara-Element übergeben:
%Vor%Da Ihre Seite nicht scrollbar ist, können Sie den gleichen Ansatz wie die verknüpfte Antwort in der anderen Antwort verwenden, jedoch mit einer Variation, um auf Ihr scrollbares Element zu zielen. Zum Beispiel, wenn Ihr scrollbares Element eine ID von "scrollbar" hat:
%Vor%Ich persönlich hasse es, für Tests scrollen zu müssen. Wenn also jemand eine bessere Lösung für Capybara + Selen findet, würde ich es gerne sehen.
Tags und Links capybara selenium-webdriver