كيفية التمرير للأسفل أو للأعلى في الصفحة Selenium برنامج تشغيل الويب

⚡ ملخص ذكي

تصفح صفحة في Selenium يستخدم WebDriver Javascriptواجهة تنفيذ لتشغيل Javaأوامر التمرير البرمجية، لأن WebDriver يتعامل مع DOM مباشرةً. أربعة سيناريوهات عملية تغطي التمرير بالبكسل، إلى عنصر، إلى أسفل الصفحة، والتمرير الأفقي.

  • 📜 Javascriptالمنفذ: أشواط Javaأوامر التمرير في البرنامج النصي Selenium برنامج تشغيل الويب.
  • 🔢 التمرير بالبكسل: تقوم الدالة window.scrollBy(x,y) بتحريك الصفحة بمقدار عدد محدد من البكسلات.
  • 🎯 انتقل إلى العنصر: تقوم الدالة scrollIntoView() بالتمرير حتى يصبح العنصر المستهدف مرئيًا بالكامل.
  • ⬇️ انتقل إلى أسفل الصفحة: يصل scrollTo مع document.body.scrollHeight إلى نهاية الصفحة.
  • ↔️ التمرير الأفقي: تتحرك خاصية scrollIntoView أيضًا بشكل جانبي إلى العناصر الموجودة خارج الشاشة.
  • 🧭 أساسيات شريط التمرير: يكشف التمرير عن العناصر التي لا يتم تحميلها إلا عند ظهورها في العرض.

قم بالتمرير لأسفل أو لأعلى الصفحة في Selenium ويب درايفر

قم بالتمرير للداخل Selenium

للتمرير باستخدام Selenium، يمكنك استخدام Javaواجهة ScriptExecutor التي تساعد على التنفيذ Javaطرق كتابة النصوص من خلال Selenium برنامج تشغيل الويب

بناء الجملة:

JavascriptExecutor js = (JavascriptExecutor) driver;  
   js.executeScript(Script,Arguments);
  • البرنامج النصي - هذا هو Javaنص يحتاج إلى التنفيذ.
  • الحجج - إنها الحجج للبرنامج النصي. إنه اختياري.

ما هو شريط التمرير؟

يتيح لك شريط التمرير التنقل حول الشاشة في الاتجاه الأفقي أو الرأسي إذا كان تمرير الصفحة الحالية لا يتناسب مع المنطقة المرئية من الشاشة. يتم استخدامه لتحريك النافذة لأعلى ولأسفل.

Selenium لا يتطلب Webdriver التمرير لتنفيذ الإجراءات لأنه يتعامل مع DOM. ولكن في بعض صفحات الويب، تصبح العناصر مرئية فقط بمجرد قيام المستخدم بالتمرير إليها. في مثل هذه الحالات، قد يكون التمرير ضروريًا.

شريط التمرير هو من نوعين: أفقي و عمودي شريط التمرير كما هو موضح في لقطة الشاشة أدناه.

التمرير

التمرير

Selenium البرنامج النصي للتمرير إلى أسفل الصفحة

دعونا نرى كيفية التمرير لأسفل صفحة الويب باستخدام برنامج تشغيل الويب selenium مع السيناريوهات الأربعة التالية:

  • السيناريو 1: للتمرير لأسفل صفحة الويب بالبكسل.
  • السيناريو 2: للتمرير لأسفل صفحة الويب من خلال رؤية العنصر.
  • السيناريو 3: للتمرير لأسفل صفحة الويب في أسفل الصفحة.
  • السيناريو 4: التمرير الأفقي على صفحة الويب.

السيناريو 1: للتمرير لأسفل صفحة الويب بالبكسل.

Selenium سيناريو

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)");
    }
}

سيناريو Descriptأيونفي الكود أعلاه، نقوم أولاً بتشغيل ما هو معطى URL في متصفح كروم. بعد ذلك، قم بتمرير الصفحة بمقدار 1000 بكسل من خلال executeScript. Javascript تقوم طريقة ScrollBy () بتمرير صفحة الويب إلى عدد محدد من وحدات البكسل.

بناء جملة أساليب ScrollBy () هو:

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

x-pixels هو الرقم عند المحور x، ويتحرك إلى اليسار إذا كان الرقم موجبًا ويتحرك إلى اليمين إذا كان الرقم سالبًا. y-pixels هو الرقم عند المحور y، ويتحرك إلى الأسفل إذا كان الرقم موجب وينتقل إلى الأعلى إذا كان الرقم سالبًا.

على سبيل المثال:

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

تحليل المخرجات : هنا هو الإخراج عند تنفيذ البرنامج النصي أعلاه.

قم بالتمرير لأسفل صفحة الويب بالبكسل

السيناريو 2: للتمرير لأسفل صفحة الويب من خلال رؤية العنصر.

Selenium سيناريو

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);
    }
}

سيناريو Descriptايون: في الكود أعلاه، نقوم أولاً بتشغيل عنوان URL المحدد في متصفح Chrome. بعد ذلك، قم بتمرير الصفحة حتى يصبح العنصر المذكور مرئيًا في الصفحة الحالية. Javascript تقوم الطريقة التمرير إلى طريقة العرض () بتمرير الصفحة حتى يصبح العنصر المذكور في وضع العرض الكامل:

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

"الوسائط [0]" تعني الفهرس الأول للصفحة بدءًا من 0.

حيث يكون "العنصر" هو محدد الموقع على صفحة الويب.

تحليل المخرجات : هنا هو الإخراج عند تنفيذ البرنامج النصي أعلاه.

 قم بالتمرير لأسفل صفحة الويب حسب رؤية العنصر

السيناريو 3: للتمرير لأسفل صفحة الويب في أسفل الصفحة.

Selenium سيناريو

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)");
    }
}

سيناريو Descriptأيون : في الكود أعلاه، نقوم أولاً بتشغيل عنوان URL المحدد في متصفح Chrome. بعد ذلك قم بالتمرير حتى أسفل الصفحة. Javascript طريقة التمرير إلى () قم بالتمرير حتى نهاية الصفحة.

js.executeScript("window.scrollTo(0, document.body.scrollHeight)");

يقوم "document.body.scrollHeight" بإرجاع الارتفاع الكامل للنص، أي صفحة الويب.

تحليل المخرجات: هنا هو الإخراج عند تنفيذ البرنامج النصي أعلاه.

قم بالتمرير لأسفل صفحة الويب في أسفل الصفحة

السيناريو 4: التمرير الأفقي على صفحة الويب

Selenium سيناريو

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);
    }
}

سيناريو Descriptأيون : في الكود أعلاه، نقوم أولاً بتشغيل عنوان URL المحدد في متصفح Chrome. بعد ذلك، قم بتمرير الصفحة أفقيًا حتى يصبح العنصر المذكور مرئيًا في الصفحة الحالية. Javascript تقوم الطريقة التمرير إلى طريقة العرض () بتمرير الصفحة حتى يصبح العنصر المذكور في وضع العرض الكامل:

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

تحليل المخرجات: هنا هو الإخراج عند تنفيذ البرنامج النصي أعلاه.

التمرير الأفقي على صفحة الويب

لمعرفة المزيد عن JavaScriptExecutor

الأسئلة الشائعة

استخدم قيمة بكسل سالبة مع window.scrollBy، على سبيل المثال js.executeScript مع window.scrollBy(0,-1000). القيمة السالبة لمحور y تُحرّك الصفحة للأعلى، على عكس القيمة الموجبة التي تُحرّكها للأسفل.

نعم. يمكنك إرسال مفاتيح PAGE_DOWN أو END أو مفاتيح الأسهم إلى عنصر، أو استخدام فئة Actions في Selenium 4. Javascriptلا يزال المنفذ الخيار الأكثر مرونة.

لا تلتقط المتصفحات سوى الجزء المرئي من الشاشة، لذا تقوم البرامج النصية بالتمرير عبر الصفحة، والتقاط أجزاء منها، ثم دمجها. كما يؤدي التمرير إلى تحميل الصور والمحتوى بشكل تدريجي قبل التقاط لقطة الشاشة.

نعم. تقوم المساعدات المدعومة بالذكاء الاصطناعي بإنتاج مقاطع scrollBy و scrollIntoView و scrollTo من التعليمات البسيطة، وتشرح حسابات البكسل. Revحدد مواقع العرض وشروط الانتظار قبل تشغيلها في مجموعتك.

تكتشف الأدوات المدعومة بالذكاء الاصطناعي متى يتوقف تحميل المحتوى الجديد، وتضبط عمق التمرير ديناميكيًا، وتنتظر العناصر بذكاء. هذا يُسهّل اختبار خلاصات التمرير اللانهائي دون الحاجة إلى تحديد عدد البكسلات مسبقًا.

تُحرّك الدالة scrollBy الصفحة مسافة ثابتة بالبكسل من موضعها الحالي. أما الدالة scrollIntoView فتُمرر الصفحة حتى يظهر عنصر مُحدد. استخدم scrollBy لتحديد المسافة، و scrollIntoView لتحديد العناصر المستهدفة.

تلخيص هذه التدوينة بـ: