2017-02-27 1 views
0

Wir haben einige Tests in Capybara (Ruby) + SitePrism + ChromeDriver geschrieben.Capybara und Siteprism: Element vom Laden ignorieren

In einigen dieser Tests gibt es eine Seite, die einige sehr langsam ladende iframes enthält und die Tests mit Net :: ReadTimeout-Ausnahmen fehlschlägt.

Ich weiß, dass ich die Zeitüberschreitung erhöhen kann, um länger zu warten, aber dies würde die gesamte Ausführungszeit der Tests um einen großen Faktor erhöhen.

Auch interessieren wir uns nicht wirklich für die iframes selbst, nur für den Rest der Elemente auf dieser Seite.

Gibt es eine Möglichkeit, Capybara zu sagen, nicht auf das Laden der Iframes zu warten?

Wenn das nicht möglich ist, wäre es zumindest möglich, eine vordefinierte Zeit zu warten, und wenn diese Zeit abläuft, simulieren Sie ein Laden der Stoppseite (wie das Drücken der Escape-Taste in einem aktuellen Browser)?

Antwort

1

Die sauberste Lösung für solche Probleme bei der Verwendung des Selentreibers ist die Verwendung eines programmierbaren Proxy wie puffing-billy https://github.com/oesmith/puffing-billy, um die Anfragen zu blockieren und Fehler oder statischen Inhalt zurückzugeben. Wenn Sie Poltergeist oder Capybara-Webkit verwenden, können Sie die White/Blacklist-Unterstützung verwenden, um das Gleiche zu tun.

+0

Während ich nach einer Lösung für unser Problem suchte, stieß ich auf Puff-Billy als eine mögliche Lösung. Leider können wir keine zusätzlichen Bibliotheken verwenden. Könnten Sie mir ein paar Beispiele für die nicht so sauberen Möglichkeiten geben, dasselbe zu tun? – Alex

+0

@Alex Schreiben Sie Ihren eigenen Proxy-Code, erhöhen Sie die Zeitüberschreitung, ändern Sie die Seitenquelle im Testmodus, damit die Rahmen nicht geladen werden usw. Sie sind alle schlechte Lösungen. Puffing-Billy ist ein Tool, mit dem Sie bessere Tests durchführen können. Obwohl ich eine Richtlinie verstehe, keine zusätzlichen Bibliotheken zur Produktionsumgebung hinzuzufügen, ist eine Richtlinie, die auch verhindert, dass Sie der Testumgebung nützliche Tools hinzufügen, leicht verrückt. –

+0

Ich stimme dir vollkommen zu, aber leider kann ich nicht viel tun, um das zu ändern! Ich ging mit dem erhöhten Zeitlimit für das Laden der Seite. – Alex

Verwandte Themen