Sayfayı Aşağı veya Yukarı Kaydırma Selenium Web sürücüsü

⚡ Akıllı Özet

Sayfayı kaydırırken Selenium WebDriver şunu kullanır: JavascriptÇalıştırmak için yürütücü arayüzü JavaWebDriver, DOM'u doğrudan manipüle ettiği için, kaydırma komutları betik olarak yazılır. Piksel bazında kaydırma, bir öğeye kaydırma, sayfanın altına kaydırma ve yatay kaydırma olmak üzere dört pratik senaryo ele alınmıştır.

  • 📜 JavascriptYürütücü: Runs JavaKomut dosyası kaydırma komutları aracılığıyla Selenium WebDriver.
  • 🔢 Piksel piksel kaydırın: window.scrollBy(x,y) sayfayı belirli sayıda piksel kadar hareket ettirir.
  • 🎯 Öğeye kaydır: scrollIntoView() işlevi, hedef öğe tamamen görünene kadar kaydırma işlemini gerçekleştirir.
  • ⬇️ Sayfanın en altına kaydırın: document.body.scrollHeight ile birlikte kullanılan scrollTo fonksiyonu sayfa sonuna ulaşır.
  • ↔️ Yatay kaydırma: scrollIntoView işlevi ayrıca yana doğru hareket ederek ekran dışındaki öğeleri de gösterir.
  • 🧭 Kaydırma çubuğunun temel özellikleri: Kaydırma işlemi, yalnızca görünür alana girdiklerinde yüklenen öğeleri ortaya çıkarır.

Sayfayı aşağı veya yukarı kaydırın. Selenium Web Sürücüsü

İçeri kaydır Selenium

kullanarak kaydırmak için Selenium, Kullanabilirsiniz JavaScriptExecutor arayüzü, yürütmeye yardımcı olur JavaKomut dosyası yöntemleri Selenium Web sürücüsü

Sözdizimi:

JavascriptExecutor js = (JavascriptExecutor) driver;  
   js.executeScript(Script,Arguments);
  • Senaryo – Bu JavaÇalıştırılması gereken komut dosyası.
  • Argümanlar – Senaryonun argümanlarıdır. Bu isteğe bağlıdır.

Kaydırma çubuğu nedir?

Kaydırma çubuğu, geçerli sayfa kaydırmanın ekranın görünür alanına sığmaması durumunda ekranda yatay veya dikey yönde hareket etmenizi sağlar. Pencereyi yukarı ve aşağı hareket ettirmek için kullanılır.

Selenium Web sürücüsü, DOM'u yönetirken eylemleri gerçekleştirmek için kaydırma gerektirmez. Ancak bazı web sayfalarında öğeler yalnızca kullanıcı bu sayfalara kaydırdığında görünür hale gelir. Bu gibi durumlarda kaydırma gerekli olabilir.

Kaydırma çubuğu iki türdendir: Yatay hem de dikey Aşağıdaki ekran görüntüsünde gösterildiği gibi kaydırma çubuğunu kullanın.

scrollbar

scrollbar

Selenium Sayfayı aşağı kaydırmak için komut dosyası

Selenium webdriver'ı kullanarak aşağıdaki 4 senaryoyu kullanarak bir web sayfasını aşağı kaydırmayı görelim:

  • Senaryo 1: Web sayfasını piksel piksel aşağı kaydırmak.
  • Senaryo 2: Web sayfasını öğenin görünürlüğüne göre aşağı kaydırmak.
  • Senaryo 3: Web sayfasını sayfanın alt kısmında aşağı kaydırmak için.
  • Senaryo 4: Web sayfasında yatay kaydırma.

Senaryo 1: Web sayfasını piksel piksel aşağı kaydırmak.

Selenium Senaryo

import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;

public class ScrollByPixel {

    WebDriver driver;
    @Test
    public void ByPixel() {
        System.setProperty("webdriver.chrome.driver", "E://Selenium//Selenium_Jars//chromedriver.exe");
        driver = new ChromeDriver();

        JavascriptExecutor js = (JavascriptExecutor) driver;

        // Launch the application		
        driver.get("https://demo.guru99.com/test/guru99home/");

        //To maximize the window. This code may not work with Selenium 3 jars. If script fails you can remove the line below		
        driver.manage().window().maximize();

        // This  will scroll down the page by  1000 pixel vertical		
        js.executeScript("window.scrollBy(0,1000)");
    }
}

Senaryo DescriptiyonYukarıdaki kodda öncelikle verilen işlemi başlatıyoruz. URL Chrome tarayıcısında. Ardından, executeScript komutuyla sayfayı 1000 piksel kaydırın. Javascript yöntem ScrollBy(), web sayfasını belirli sayıda piksele kaydırır.

ScrollBy() yöntemlerinin sözdizimi şöyledir:

executeScript("window.scrollBy(x-pixels,y-pixels)");

x-pixels, x eksenindeki sayıdır, sayı pozitifse sola, sayı negatifse sağa doğru hareket eder. y-pixels, y eksenindeki sayıdır, sayı pozitifse aşağı doğru hareket eder. pozitif ve eğer sayı negatifse yukarıya doğru hareket eder.

Örnek:

js.executeScript("window.scrollBy(0,1000)"); //Scroll vertically down by 1000 pixels

Çıktı analizi: Yukarıdaki betiği çalıştırdığınızda çıktı budur.

Web Sayfasını Piksel Olarak Aşağı Kaydırın

Senaryo 2: Web sayfasını öğenin görünürlüğüne göre aşağı kaydırmak.

Selenium Senaryo

import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;

public class ScrollByVisibleElement {

    WebDriver driver;
    @Test
    public void ByVisibleElement() {
        System.setProperty("webdriver.chrome.driver", "G://chromedriver.exe");
        driver = new ChromeDriver();
        JavascriptExecutor js = (JavascriptExecutor) driver;

        //Launch the application		
        driver.get("https://demo.guru99.com/test/guru99home/");

        //Find element by link text and store in variable "Element"        		
        WebElement Element = driver.findElement(By.linkText("Linux"));

        //This will scroll the page till the element is found		
        js.executeScript("arguments[0].scrollIntoView();", Element);
    }
}

Senaryo Descriptiyon: Yukarıdaki kodda öncelikle verilen URL’yi Chrome tarayıcısında başlatıyoruz. Daha sonra, söz konusu öğe geçerli sayfada görünene kadar sayfayı kaydırın. Javascript method ScrollIntoView(), belirtilen öğe tam görünüme gelinceye kadar sayfayı kaydırır:

js.executeScript("arguments[0].scrollIntoView();",Element );

“argümanlar[0]”, sayfanın 0'dan başlayan ilk dizini anlamına gelir.

Web sayfasındaki konum belirleyicinin "Öğe" olduğu yer.

Çıktı analizi: Yukarıdaki betiği çalıştırdığınızda çıktı budur.

 Elemanın Görünürlüğüne Göre Web Sayfasını Aşağı Kaydırın

Senaryo 3: Web sayfasını sayfanın alt kısmında aşağı kaydırmak için.

Selenium Senaryo

import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;

public class ScrollByPage {

    WebDriver driver;
    @Test
    public void ByPage() {
        System.setProperty("webdriver.chrome.driver", "E://Selenium//Selenium_Jars//chromedriver.exe");
        driver = new ChromeDriver();

        JavascriptExecutor js = (JavascriptExecutor) driver;

        // Launch the application		
        driver.get("https://demo.guru99.com/test/guru99home/");

        //This will scroll the web page till end.		
        js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
    }
}

Senaryo Descriptiyon: Yukarıdaki kodda öncelikle verilen URL’yi Chrome tarayıcısında başlatıyoruz. Daha sonra sayfanın en altına kadar kaydırın. Javascript yöntemi ScrollTo() sayfanın sonuna kadar kaydırır.

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.

Çıktı analizi: Yukarıdaki betiği çalıştırdığınızda çıktı budur.

Sayfanın Alt Kısmındaki Web Sayfasını Aşağı Kaydırın

Senaryo 4: Web sayfasında yatay kaydırma

Selenium Senaryo

import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;

public class HorizontalScroll {

    WebDriver driver;
    @Test
    public void ScrollHorizontally() {
        System.setProperty("webdriver.chrome.driver", "E://Selenium//Selenium_Jars//chromedriver.exe");
        driver = new ChromeDriver();

        JavascriptExecutor js = (JavascriptExecutor) driver;

        // Launch the application		
        driver.get("https://demo.guru99.com/test/guru99home/scrolling.html");

        WebElement Element = driver.findElement(By.linkText("VBScript"));

        //This will scroll the page Horizontally till the element is found		
        js.executeScript("arguments[0].scrollIntoView();", Element);
    }
}

Senaryo Descriptiyon: Yukarıdaki kodda öncelikle verilen URL’yi Chrome tarayıcısında başlatıyoruz. Daha sonra, söz konusu öğe geçerli sayfada görünene kadar sayfayı yatay olarak kaydırın. Javascript method ScrollIntoView(), belirtilen öğe tam görünüme gelinceye kadar sayfayı kaydırır:

js.executeScript("arguments[0].scrollIntoView();",Element );

Çıktı analizi: Yukarıdaki betiği çalıştırdığınızda çıktı budur.

Web Sayfasında Yatay Kaydırma

Hakkında daha fazla bilgi alın JavaKomut DosyasıYürütücü

SSS

Örneğin, window.scrollBy(0,-1000) ile js.executeScript kullanarak `window.scrollBy` ile negatif bir piksel değeri kullanın. Negatif y değeri sayfayı yukarı doğru hareket ettirirken, pozitif değer sayfayı aşağı doğru kaydırır.

Evet. Bir öğeye Keys.PAGE_DOWN, Keys.END veya ok tuşlarını gönderebilir veya Actions sınıfını kullanabilirsiniz. Selenium 4. JavascriptVasiyetnameyi yerine getirecek kişi, en esnek seçenek olmaya devam ediyor.

Tarayıcılar yalnızca görünür alanı yakalar, bu nedenle komut dosyaları sayfada gezinir, bölümleri yakalar ve bunları birleştirir. Kaydırma işlemi ayrıca ekran görüntüsünden önce tembel yükleme yöntemiyle yüklenen resimleri ve içeriği de tetikler.

Evet. Yapay zekâ asistanları, basit talimatlardan scrollBy, scrollIntoView ve scrollTo kod parçacıkları üretir ve piksel matematiğini açıklar. RevTest paketinizde çalıştırmadan önce konum belirleyicileri ve bekleme koşullarını inceleyin.

Yapay zekâ destekli araçlar, yeni içeriğin yüklenmesinin durduğu anı algılar, kaydırma derinliğini dinamik olarak ayarlar ve öğeleri akıllıca bekler. Bu sayede, sabit piksel sayılarına gerek kalmadan sonsuz kaydırma özelliğine sahip içeriklerin test edilmesi otomatikleştirilir.

`scrollBy`, sayfayı mevcut konumdan sabit sayıda piksel kadar hareket ettirir. `scrollIntoView` ise belirli bir öğe görünene kadar sayfayı kaydırır. Mesafe için `scrollBy`, öğeleri hedeflemek için ise `scrollIntoView` kullanın.

Bu yazıyı şu şekilde özetleyin: