كيفية التمرير لأسفل أو لأعلى الصفحة في السيلينيوم Webdriver

انتقل في السيلينيوم

للتمرير باستخدام السيلينيوم، يمكنك استخدام واجهة JavaScriptExecutor التي تساعد على تنفيذ طرق JavaScript من خلال Selenium Webdriver

بناء الجملة:

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

السيلينيوم النصي للتمرير إلى أسفل الصفحة

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

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

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

سيناريو السيلينيوم

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("http://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)");
    }
}

وصف البرنامج النصي: في الكود أعلاه نقوم أولاً بتشغيل عنوان URL المحدد في متصفح Chrome. بعد ذلك، قم بتمرير الصفحة بمقدار 1000 بكسل من خلال ExecuScript. تقوم طريقة 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: للتمرير لأسفل صفحة الويب من خلال رؤية العنصر.

سيناريو السيلينيوم

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("http://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);
    }
}

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

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

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

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

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

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

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

سيناريو السيلينيوم

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("http://demo.guru99.com/test/guru99home/");

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

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

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

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

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

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

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

سيناريو السيلينيوم

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("http://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);
    }
}

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

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

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

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

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

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

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

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

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

التمرير

التمرير

نبذة عامة

  • في البرنامج التعليمي أعلاه، نوضح تمرير صفحة الويب من خلال سيناريوهات مختلفة.
  • في السيناريو الأول، أظهرنا التمرير لأسفل على الصفحة بالبكسل.
  • في السيناريو الثاني، أظهرنا التمرير لأسفل الصفحة حتى يظهر العنصر.
  • في السيناريو الثالث، أظهرنا التمرير للأسفل في أسفل الصفحة.
  • وفي السيناريو الرابع، تم توضيح التمرير الأفقي على صفحة الويب.