2016-03-30 4 views
1

Ich schreibe Selen automatisierte Tests auf einer Dojo-basierten Web-Anwendung.Selen finden von Xpath sehr langsam für die erste Suche auf Seite

Auf einer der Seiten, die ich auf der ersten Suche nach Xpath teste, ist langsam (etwa 30 Sekunden; das ist langsam für meinen Fall - alle anderen Seiten reagieren in einer Sekunde). Dies ist unabhängig davon, mit welchem ​​Element ich interagiere - sei es eine Überprüfung gegen isDisplayed oder click Interaktion.

All dies lässt mich glauben, dass bei der ersten XPath-Abfrage auf einer bestimmten Seite einige Caching passiert. Gibt es jemanden, der Licht spenden kann? Wie kann ich dieses Precomputing optimieren, gibt es eine Möglichkeit, dieses Caching auszuschalten?

Meine Umgebung:

  • Java 1.7
  • Java Selen 2.52.0
  • Mozilla Firefox 38.0.5

Danke für die Hilfe!

+0

Nachdem ich meinen Fahrer die nächste Anweisung erstellen ist: driver.manage(). deleteAllCookies(); – MikeJRamsey56

+0

@ MikeJRamsey56 In meinem Fall ist es nicht der Cookie-Cache, der das Problem verursacht. Ich bin bereits auf Cookies gelöscht. –

Antwort

1

Worauf ist Ihre implizite Wartezeit eingestellt? Zeigt die Seite während des Ladevorgangs einen Lade-Spinner an?

Das Laden der Seite geschieht nicht im Handumdrehen. Auf dieser Seite kann JavaScript ausgeführt werden, um Elemente zu laden. Unter der Annahme, dass Ihre implizite Wartezeit in der Größenordnung von 30+ Sekunden liegt, wartet das erste findElement möglicherweise auf das Laden des Elements.

Überprüfen Sie, ob die Seite jQuery verwendet (wenn Sie öffnen Sie die Seite Quelle ist das ‚jquery‘? Enthalten) Wenn ja, google WebDriver Rückkehr warten jQuery.active

+0

Hey, danke für die Antwort. Meine implizite Wartezeit beträgt 10 Sekunden. Die Seite scheint voll geladen zu sein, wenn ich diese 30 Sekunden, die ich berichte, messe. Die Anwendung basiert auf Dojo, solange ich sagen kann, dass eine Menge Javascript beteiligt ist, aber keine JQuery per se. –

+0

Hey Nachdem ich FireBug eingeschaltet und die Netzwerk-Registerkarte überwacht habe, habe ich herausgefunden, dass es zwei AJAX-Anrufe gibt, die ziemlich lange dauern (was meine 30+ Sekunden Verzögerung rechtfertigt). Dies sagt uns auch, warum kein Seitenlade-Indikator sichtbar ist, aber die Elemente nicht geladen sind. Ich gehe schlecht fort und akzeptiere deine Antwort, da du diesen Fall anscheinend abgedeckt hast. –

Verwandte Themen