2016-03-21 3 views
0

Ich habe ein Angular Grid (ag-Grid), das, basierend auf dem Scrollen/Anzeigen, div im DOM erstellt, um Daten anzuzeigen. Ich schreibe einen Selenium WebDriver Test, der die Daten aus dem Grid lesen und mit den Daten aus der API vergleichen würde.Gibt es eine Möglichkeit, die Angular Grid-Virtualisierung zu deaktivieren, d. H. Angular creating divs für Raster basierend auf Höhe/Breite?

Da einige der Divs noch nicht erstellt wurden (hinter der Angular-Virtualisierung verborgen), kann WebDriver die Daten nicht effektiv erfassen.

Gibt es eine Möglichkeit, das Raster zur Anzeige aller Daten zu zwingen?

Antwort

0

Versuchen Sie explizit, auf die Bildlaufleiste zu klicken oder den Bildlaufbereich zu verschieben, um die gewünschten Teilbilder anzuzeigen, damit Angular die Teilbilder instanziiert. Du könntest Scroll-in-View auf ein bekanntes instanziiertes Objekt am Rand des instanziierten Div-Sets versuchen, was, wie ich mir vorstelle, Angular dazu bringt, diejenigen, die sich gerade außerhalb des Views befinden, in Erwartung eines fortgesetzten Scrollens zu instantiieren. Waschen, spülen, wiederholen, falls gewünscht.

Hier ist eine möglicherweise hilfreich Seite über blättern zu Element in Selen: Scroll Element into View with Selenium

1

gibt es eine Einstellung, gridOptions.rowBuffer, dass das Netz angibt, wie viele zusätzliche Zeilen über/unter dem Ansichtsfenster zu machen. Setzen Sie dies auf eine Zahl größer als die Anzahl der Zeilen, die Sie haben, und dann werden alle Zeilen gerendert. oder wenn Sie sich nicht sicher sind, setzen Sie es auf 9999999.

ps Sie erwähnen 'Angular Grid' und 'Angular Virtualisation'. um richtig zu sein, heißt es "Agnostic Grid" - die AG steht für AGnostic - und auch die Virtualisierung ist nicht Angular, das Grid Grid hat eine eigene Implementierung der Zeilenvirtualisierung.