2013-08-16 8 views
8

sich das folgende Szenario,Wie kann überprüft werden, ob ein WebElement mit WebDriver im Ansichtsfenster angezeigt wird?

  1. Die Webseite zusammen mit einer vertikalen Bildlaufleiste angezeigt wird
  2. Bildlaufleiste auf die Gegenwart ist unten
  3. WebElement ‚Test‘ an der Spitze der Seite vorhanden ist und ist jetzt im aktuellen Ansichtsport nicht sichtbar.

Funktionalität überprüft werden:

Ein Klick Link ‚Goto Top‘ im unteren Bereich der Seite sollte die Seite so bewegt, dass der WebElement ‚Test‘ im Viewport angezeigt wird.

Lassen Sie mich wissen, wie Sie überprüfen können, ob ein Element im aktuellen Ansichtsport angezeigt wird oder WebDriver nicht verwendet wird.

Hinweis: element.isDisplayed wird immer im obigen Fall wahr sein, da die Funktion nicht die ganze Seite überprüft als nur die aktuelle Ansicht Port überprüfen.

+0

Können Sie die URL der Website posten? – Akbar

+0

Bitte versuchen Sie dies [link] (http://www.computerhope.com/issues/ch000049.htm#top). Halten Sie Ausschau nach dem 'Top'-Link auf der Seite –

+1

. Mit JavaScript können Sie feststellen, ob sich das Element im Ansichtsfenster befindet. Suchen Sie einfach in Google nach, wie Sie das tun können. WebDriver ermöglicht Javascript-Ausführung, so dass eine Option, obwohl leicht hässlich ist. –

Antwort

1

@Vel Ganesh - Ich weiß nicht, ob dies mit Selen verifiziert werden kann. Kann aber definitiv mit Sikuli gemacht werden. Sie können sikuli.org für Details überprüfen. Sikuli hat eine Java-API und kann daher auch in den WebDriver-Code integriert werden.

+0

Mit Sikuli können Sie testen, ob die Seite wirklich gescrollt wurde oder nicht. Aber mit WebDriver können Sie möglicherweise einen negativen Test durchführen. Wenn die Seite gescrollt wird und wenn Sie ein findElement auf dem Link "Top" ausführen, wird ein Fehler ausgegeben - elementNotVisible. Nur eine zweite Idee. – Akbar

1

Nun, wie das allerletzte, was mir in den Sinn kommt, ich für so etwas gehen würde:

  1. get Screenshot auf, was Sie haben, nachdem Sie den Link am unteren Rand klicken (stellen Sie sicher, es gibt Ihnen Viewport-Screenshot nur)
  2. Verwendung WebDriver window.scrollTo der (siehe unten nach oben gehen)
  3. Wiederholung des 1.st Schritt
  4. vergleichen die Ergebnisse des 1.st und 3.rd Schrittes

Wo für WebDriver mit Scrollen folgenden sollte funktionieren:

JavascriptExecutor js = (JavascriptExecutor)driver; 
js.executeScript("window.scrollTo(0,0)"); 

Es scheint wie eine verzweifelte Problem zu umgehen, aber vielleicht lohnt sich ein Versuch sein, wenn keine andere Lösung vorgeschlagen.