2014-09-08 35 views
6

Java ile selenyum kullanıyorum, "Başa dön" düğmesini test etmem gerekiyor, böylece yaptığım şey "Başa dön" düğmesi görünene kadar sayfayı kaydırmaktır. sayfanın% 25'i kaydırıldığında gösterilir ve bu tuşa tıklarsanız, bu düğme kullanıcıyı sayfanın en üstüne götürür, şimdi çalışıp çalışmadığını ve görünen bölümün sayfanın üst kısmı olduğunu kontrol etmem gerekiyor. Bunu java kullanarak nasıl yapabilirim?Selenium, kaydırma konumunu nasıl kontrol edersiniz

cevap

15

Genel ilke, tarayıcıda window.pageYOffset değerini kontrol etmektir. Daha sonra value 0. executeScript çalıştırmak için kullanılır olup olmadığını kontrol edebilirsiniz

JavascriptExecutor executor = (JavascriptExecutor) driver; 
Long value = (Long) executor.executeScript("return window.pageYOffset;"); 

: Sonra window.pageYOffset varsayarsak 0 değeri olmalıdır başa dön tamamen düğme kaydırır Eğer driver değişkeni WebDriver örneğini tutan Tarayıcıda JavaScript kodu.

Bu yanıt başlangıçta scrollY'dan bahseder, ancak IE'de destek yoktur. MDN page on it diyor:

çapraz tarayıcı uyumluluğu için

, window.pageYOffset yerine window.scrollY kullanın. Ayrıca, Internet Explorer'ın eski sürümleri (< 9), ya özelliği desteklemez ve diğer standart dışı özellikleri de kontrol ederek çalışılmalıdır. Bir tam uyumlu örnek: "Söylediğin" için R. Oosterholt için

var supportPageOffset = window.pageXOffset !== undefined; 
var isCSS1Compat = ((document.compatMode || "") === "CSS1Compat"); 

var x = supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft; 
var y = supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop; 

teşekkürler.

4

Internet Explorer pencereyi desteklemediğinden Louis'in yanıtı çalışır, ancak tam olarak tarayıcılar arası uyumlu değildir. Window.pageYOffset'i kullanmamanızı öneririm - bu, aynı değeri döndürür, ancak çapraz tarayıcı uyumludur.

Kaynak:

Ayrıca
JavascriptExecutor executor = (JavascriptExecutor) driver; 
Long value = (Long) executor.executeScript("return window.pageYOffset;"); 

, Ruby (benim şimdiki pozisyon için kullandığınız kadar sözdizimi, daha önce olduğu gibi varsayarak o sürücü örneği: Burada

https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollY modifiye koduyla Yukarıdaki kod bloğudur değişken adı olan 'sürücü' üzerinden erişilebilir:

driver.execute_script('return window.pageYOffset;') 
İlgili konular