2013-08-16 34 views
8

Rozważmy następujący scenariusz,Jak sprawdzić, czy WebElement jest wyświetlany w oknie roboczym przy użyciu WebDriver?

  1. Na stronie jest wyświetlany wraz z pionowego paska przewijania
  2. Pasek przewijania jest obecny na dno
  3. „test” WebElement jest obecny na górze strony i jest teraz niewidoczny w bieżącym porcie widoku.

Funkcjonalność zostać zweryfikowane:

Kliknięcie łącza „Goto top” w dolnej części strony należy przewijać stronę w taki sposób, że „test” na WebElement zostanie wyświetlona w wizjer.

Proszę dać mi znać, w jaki sposób sprawdzić, czy element jest wyświetlany na bieżącym porcie widoku, czy nie korzysta z WebDriver.

Uwaga: element.isDisplayed zawsze będzie prawdziwe w powyższym przypadku, gdy funkcja sprawdza całą stronę zamiast sprawdzać tylko aktualny widok na port.

+0

Czy możesz opublikować adres URL strony? – Akbar

+0

Spróbuj tego [link] (http://www.computerhope.com/issues/ch000049.htm#top). Zwróć uwagę na link "Top" na stronie –

+1

używając javascript, możesz stwierdzić, czy element jest w oknie roboczym. Po prostu wyszukaj w Google, jak to zrobić. WebDriver pozwala na wykonywanie javascript, więc jest to jedna z opcji, choć nieco brzydka. –

Odpowiedz

1

@Vel Ganesh - Nie wiem, czy można to zweryfikować za pomocą selenu. Ale można zdecydowanie zrobić za pomocą Sikuli. Możesz sprawdzić sikuli.org, by dowiedzieć się więcej. Sikuli ma interfejs API języka Java i można go zintegrować z kodem WebDriver.

+0

Z Sikuli możesz sprawdzić, czy strona naprawdę przewinęła się, czy nie. Ale dzięki WebDriver możesz wykonać negatywne testy. Jeśli strona jest przewijana i jeśli zrobisz findElement na linku "Top", to wyświetli się błąd - elementNotVisible. Pomysł tylko na chwilę. – Akbar

1

Cóż, jak bardzo Ostatnią rzeczą przychodzi mi do głowy, że pójdę na coś takiego:

  1. get zrzucie na co masz po kliknięciu w link na dole (upewnij się, że daje ci widok portu screenshot tylko)
  2. użycie Webdriver na window.scrollTo iść do góry (patrz poniżej)
  3. powtórzyć krok 1.st
  4. porównać wyniki 1.st i 3.rd kroku

Gdzie do przewijania za pomocą webdriver powinien pracować co następuje:

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

Wydaje się desperackiej obejście, ale może być warte wysiłku, jeśli żadne inne rozwiązanie jest sugerowane.