Kaydırma çubuğu, geçerli sayfa kaydırma, ekranın görünen alanına sığmıyorsa, ekranda yatay veya dikey yönde hareket etmenizi sağlar. Pencereyi yukarı aşağı hareket ettirmek için kullanılır.
Selenium Webdriver, DOM’yi manipüle ettiği için eylemleri gerçekleştirmek için kaydırma gerektirmez. Ancak belirli web sayfalarında, öğeler yalnızca kullanıcı onlara kaydırdığında görünür hale gelir. Bu gibi durumlarda kaydırma gerekli olabilir.
Kaydırma çubuğu iki tiptir: Aşağıdaki ekran görüntüsünde gösterildiği gibi yatay ve dikey kaydırma çubuğu.
Selenium ile Kaydırma(Scroll) İşlemi
Selenium kullanarak kaydırma yapmak için JavaScript yöntemlerini Selenium Webdriver aracılığıyla yürütmeye yardımcı olan JavaScriptExecutor arabirimini kullanabilirsiniz.
Syntax:
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript(Script,Arguments);
Komut Dosyası (Script)— Bu, yürütülmesi gereken JavaScript’tir.
Argümanlar (Arguments)— Komut dosyasının argümanlarıdır. İsteğe bağlı.
Sayfayı kaydırmak için Selenium Komut Dosyası
Aşağıdaki 4 senaryo ile selenyum web sürücüsünü kullanarak bir web sayfasını kaydırdığını görelim:
Senaryo 1: Web sayfasını piksel olarak aşağı kaydırmak.
Selenium Script
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript(“window.scrollBy(0,1000)”);
Komut Dosyası(Script) Açıklaması: Yukarıdaki kodda executeScript aracılığıyla sayfayı 1000 piksel kaydırın. Javascript yöntemi ScrollBy(), web sayfasını belirli piksel sayısına kaydırır.
ScrollBy() yöntemlerinin sözdizimi şöyledir:
executeScript(“window.scrollBy(x-pixels,y-pixels)”);
x-piksel x eksenindeki sayıdır, sayı pozitifse sola, sayı negatifse sağa hareket eder. y-piksel y eksenindeki sayıdır, sayı ise aşağı doğru hareket eder. pozitif ve sayı negatif ise yukarı doğru hareket eder.
Örneğin;
// Dikey olarak 1000 piksel aşağı kaydır
js.executeScript(“window.scrollBy(0,1000)”);
Yukarıdaki komut dosyasını çalıştırdığınızda çıktı buradadır.
Senaryo 2: Öğenin görünürlüğüne göre web sayfasını aşağı kaydırmak.
Selenium Script
JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement Element = driver.findElement(By.linkText(“Linux”));
js.executeScript(“arguments[0].scrollIntoView();”, Element);
Komut Dosyası(Script) Açıklaması: Yukarıdaki kodda, belirtilen öğe geçerli sayfada görünene kadar sayfayı kaydırın. Javascript yöntemi scrollIntoView(), belirtilen öğe tam görünümde olana kadar sayfayı kaydırır:
js.executeScript(“arguments[0].scrollIntoView();”,Element );
“argümanlar[0]”, 0’dan başlayan sayfanın ilk dizini anlamına gelir.
Yukarıdaki komut dosyasını çalıştırdığınızda çıktı buradadır.
Senaryo 3: Sayfanın altındaki web sayfasını aşağı kaydırmak.
Selenium Script
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript(“window.scrollTo(0, document.body.scrollHeight)”);
Komut Dosyası(Script) Açıklaması: Yukarıdaki kodda, sayfanın en altına kadar kaydırın. Javascript yöntemi scrollTo(), sayfanın sonuna kadar kaydırın.
js.executeScript(“window.scrollTo(0, document.body.scrollHeight)”);
“document.body.scrollHeight”, gövdenin, yani web sayfasının tam yüksekliğini döndürür.
Yukarıdaki komut dosyasını çalıştırdığınızda çıktı buradadır.
Senaryo 4: Web sayfasında yatay kaydırmak.
Selenium Script
JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement Element = driver.findElement(By.linkText(“VBScript”));
js.executeScript(“arguments[0].scrollIntoView();”, Element);
Komut Dosyası(Script) Açıklaması: Yukarıdaki kodda , belirtilen öğe geçerli sayfada görünene kadar sayfayı yatay olarak kaydırın. Javascript yöntemi scrollIntoView(), belirtilen öğe tam görünümde olana kadar sayfayı kaydırır:
js.executeScript(“arguments[0].scrollIntoView();”,Element );
Yukarıdaki komut dosyasını çalıştırdığınızda çıktı buradadır.
Özet
Yukarıdaki öğreticide, farklı senaryolar üzerinden web sayfasının kaydırılmasını gösteriyoruz.
İlk senaryoda, piksel sayfa aşağı kaydırmayı gösterdik.
İkinci senaryoda, öğenin görünene kadar sayfayı aşağı kaydırmasını gösterdik.
Üçüncü senaryoda, sayfanın alt kısmında sayfanın aşağı kaydırılmasını gösterdik.
Dördüncü senaryoda, web sayfasındaki yatay kaydırma gösterilmiştir.