सेलेनियम वेबड्राइवर में पेज को नीचे या ऊपर स्क्रॉल कैसे करें

विषय - सूची:

Anonim

स्क्रॉलबार क्या है?

एक स्क्रॉलबार आपको स्क्रीन को क्षैतिज या ऊर्ध्वाधर दिशा में ले जाने की सुविधा देता है यदि वर्तमान पृष्ठ स्क्रॉल स्क्रीन के दृश्य क्षेत्र में फिट नहीं होता है। इसका उपयोग विंडो को ऊपर और नीचे स्थानांतरित करने के लिए किया जाता है।

सेलेनियम वेबड्राइवर को कार्रवाई करने के लिए स्क्रॉल की आवश्यकता नहीं है क्योंकि यह डोम में हेरफेर करता है। लेकिन कुछ वेब पेजों में, उपयोगकर्ता द्वारा स्क्रॉल किए जाने के बाद ही तत्व दिखाई देते हैं। ऐसे मामलों में स्क्रॉल करना आवश्यक हो सकता है।

स्क्रॉल बार दो प्रकार का होता है: क्षैतिज और ऊर्ध्वाधर स्क्रॉल बार जैसा कि नीचे स्क्रीनशॉट में दिखाया गया है।

सेलेनियम में स्क्रॉल करें

सेलेनियम का उपयोग करने के लिए स्क्रॉल करने के लिए, आप JavaScriptExecutor इंटरफ़ेस का उपयोग कर सकते हैं जो सेलेनियम वेबड्राइवर के माध्यम से जावास्क्रिप्ट विधियों को निष्पादित करने में मदद करता है

JavaScriptExecutor के बारे में अधिक जानें

वाक्य - विन्यास :

JavascriptExecutor js = (JavascriptExecutor) ड्राइवर;js.executeScript (स्क्रिप्ट, तर्क);
  • स्क्रिप्ट - यह जावास्क्रिप्ट है जिसे निष्पादित करने की आवश्यकता है।
  • तर्क - यह स्क्रिप्ट का तर्क है। यह वैकल्पिक है।

पेज को नीचे स्क्रॉल करने के लिए सेलेनियम स्क्रिप्ट

आइए, 3 परिदृश्यों के साथ सेलेनियम वेबड्राइवर का उपयोग करके वेब पेज को नीचे स्क्रॉल करें:

  • परिदृश्य 1: पिक्सेल द्वारा वेब पेज को नीचे स्क्रॉल करने के लिए।
  • परिदृश्य 2: तत्व की दृश्यता द्वारा वेब पेज को नीचे स्क्रॉल करना।
  • परिदृश्य 3: पृष्ठ के नीचे वेब पेज को नीचे स्क्रॉल करने के लिए।
  • परिदृश्य 4: वेब पेज पर क्षैतिज स्क्रॉल।

परिदृश्य 1: पिक्सेल द्वारा वेब पेज को नीचे स्क्रॉल करने के लिए।

सेलेनियम स्क्रिप्ट

आयात org.openqa.selenium.JavascriptExecutor;आयात org.openqa.selenium.WebDriver;आयात org.openqa.selenium.chrome.ChromeDriver;आयात org.testng.annotations.Test;सार्वजनिक वर्गWebDriver ड्राइवर;@परीक्षासार्वजनिक शून्य ByPixel () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");ड्राइवर = नया क्रोमड्राइवर ();JavascriptExecutor js = (JavascriptExecutor) ड्राइवर;// एप्लिकेशन लॉन्च करेंDriver.get ("http://demo.guru99.com/test/guru99home/");// खिड़की को अधिकतम करने के लिए। यह कोड सेलेनियम 3 जार के साथ काम नहीं कर सकता है। यदि स्क्रिप्ट विफल हो जाती है तो आप नीचे दी गई लाइन को हटा सकते हैंDriver.manage ()। window ()। मैक्सिमम ();// यह पृष्ठ को 1000 पिक्सेल लंबवत स्क्रॉल करेगाjs.executeScript ("window.scrollBy (0,1000)");}}

स्क्रिप्ट विवरण : उपरोक्त कोड में, पहले हम क्रोम ब्राउज़र में दिए गए URL को लॉन्च करते हैं। अगला, पृष्ठ को निष्पादन योग्यस्क्रिप्ट के माध्यम से 1000 पिक्सेल तक स्क्रॉल करें। जावास्क्रिप्ट विधि स्क्रॉलबी () वेब पेज को विशिष्ट संख्या में पिक्सेल तक स्क्रॉल करता है।

स्क्रॉलबाय () विधियों का सिंटैक्स है:

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

x- पिक्सेल x- अक्ष पर संख्या है, यह बाईं ओर जाता है यदि संख्या धनात्मक है और यह दायीं ओर जाती है यदि संख्या ऋणात्मक है। y- अक्ष y- अक्ष पर संख्या है, यह संख्या के नीचे है। पॉजिटिव और यह ऊपर की ओर बढ़ता है यदि संख्या ऋणात्मक होती है।

उदाहरण:

js.executeScript ("window.scrollBy (0,1000)"); // 1000 पिक्सेल से लंबवत स्क्रॉल करें 

आउटपुट विश्लेषण: यहाँ आउटपुट है जब आप उपरोक्त स्क्रिप्ट निष्पादित करते हैं।

परिदृश्य 2: तत्व की दृश्यता द्वारा वेब पेज को नीचे स्क्रॉल करना।

सेलेनियम स्क्रिप्ट

आयात org.openqa.selenium.By;आयात org.openqa.selenium.JavascriptExecutor;आयात org.openqa.selenium.WebDriver;आयात org.openqa.selenium.WebElement;आयात org.openqa.selenium.chrome.ChromeDriver;आयात org.testng.annotations.Test;सार्वजनिक वर्गWebDriver ड्राइवर;@परीक्षासार्वजनिक शून्य ByVoubleElement () {System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");ड्राइवर = नया क्रोमड्राइवर ();JavascriptExecutor js = (JavascriptExecutor) ड्राइवर;// एप्लिकेशन लॉन्च करेंDriver.get ("http://demo.guru99.com/test/guru99home/");// '' तत्व '' के आधार पर लिंक टेक्स्ट और स्टोर द्वारा तत्व खोजेंWebElement Element = driver.findElement (By.linkText ("Linux"));// यह पृष्ठ तब तक स्क्रॉल करेगा जब तक तत्व नहीं मिल जाताjs.executeScript ("तर्क [0] .scrollIntoView ();", तत्व);}}

स्क्रिप्ट विवरण: उपरोक्त कोड में, हम पहले क्रोम ब्राउज़र में दिए गए यूआरएल को लॉन्च करते हैं। अगला, पृष्ठ को तब तक स्क्रॉल करें जब तक कि वर्तमान पृष्ठ पर उल्लिखित तत्व दिखाई न दे। जावास्क्रिप्ट विधि स्क्रॉल इनटू व्यू () पृष्ठ को तब तक स्क्रॉल करता है जब तक कि निर्दिष्ट तत्व पूर्ण दृश्य में न हो:

js.executeScript ("तर्क [0] .scrollIntoView ();", तत्व); 

"तर्क [0]" का अर्थ है पृष्ठ का पहला सूचकांक 0 से शुरू होता है।

जहां एक "एलिमेंट" वेब पेज पर लोकेटर है।

आउटपुट विश्लेषण: यहाँ आउटपुट है जब आप उपरोक्त स्क्रिप्ट निष्पादित करते हैं।

परिदृश्य 3: पृष्ठ के नीचे वेब पेज को नीचे स्क्रॉल करने के लिए।

सेलेनियम स्क्रिप्ट

आयात org.openqa.selenium.JavascriptExecutor;आयात org.openqa.selenium.WebDriver;आयात org.openqa.selenium.chrome.ChromeDriver;आयात org.testng.annotations.Test;पब्लिक क्लास स्क्रॉलबीज {WebDriver ड्राइवर;@परीक्षासार्वजनिक शून्य बायपेज () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");ड्राइवर = नया क्रोमड्राइवर ();JavascriptExecutor js = (JavascriptExecutor) ड्राइवर;// एप्लिकेशन लॉन्च करेंDriver.get ("http://demo.guru99.com/test/guru99home/");// यह वेब पेज को अंत तक स्क्रॉल करेगा।js.executeScript ("window.scrollTo (0, document.body.scrollHeight)");}}

स्क्रिप्ट विवरण: उपरोक्त कोड में, हम पहले क्रोम ब्राउज़र में दिए गए यूआरएल को लॉन्च करते हैं। अगला, पृष्ठ के नीचे तक स्क्रॉल करें। जावास्क्रिप्ट विधि स्क्रॉल () पृष्ठ के अंत तक स्क्रॉल करें।

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

"document.body.scrollHeight" शरीर की पूरी ऊंचाई यानी वेब पेज लौटाता है।

आउटपुट विश्लेषण: यहाँ आउटपुट है जब आप उपरोक्त स्क्रिप्ट निष्पादित करते हैं।

परिदृश्य 4: वेब पेज पर क्षैतिज स्क्रॉल।

सेलेनियम स्क्रिप्ट

आयात org.openqa.selenium.By;आयात org.openqa.selenium.JavascriptExecutor;आयात org.openqa.selenium.WebDriver;आयात org.openqa.selenium.WebElement;आयात org.openqa.selenium.chrome.ChromeDriver;आयात org.testng.annotations.Test;सार्वजनिक वर्गWebDriver ड्राइवर;@परीक्षासार्वजनिक शून्य स्क्रॉलहॉरीली () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");ड्राइवर = नया क्रोमड्राइवर ();JavascriptExecutor js = (JavascriptExecutor) ड्राइवर;// एप्लिकेशन लॉन्च करेंDriver.get ("http://demo.guru99.com/test/guru99home/scrolling.html");WebElement Element = driver.findElement (By.linkText ("VBScript"));// यह तत्व मिलने तक क्षैतिज रूप से पृष्ठ को स्क्रॉल करेगाjs.executeScript ("तर्क [0] .scrollIntoView ();", तत्व);}}

स्क्रिप्ट विवरण: उपरोक्त कोड में, हम पहले क्रोम ब्राउज़र में दिए गए यूआरएल को लॉन्च करते हैं। अगला, पृष्ठ को क्षैतिज रूप से तब तक स्क्रॉल करें जब तक कि वर्तमान पृष्ठ पर उल्लिखित तत्व दिखाई न दे। जावास्क्रिप्ट विधि स्क्रॉल इनटू व्यू () पृष्ठ को तब तक स्क्रॉल करता है जब तक कि निर्दिष्ट तत्व पूर्ण दृश्य में न हो:

js.executeScript ("तर्क [0] .scrollIntoView ();", तत्व);

आउटपुट विश्लेषण: यहाँ आउटपुट है जब आप उपरोक्त स्क्रिप्ट निष्पादित करते हैं।

सारांश

  • उपरोक्त ट्यूटोरियल में, हम अलग-अलग परिदृश्यों के माध्यम से वेब पेज के स्क्रॉल का वर्णन करते हैं।
  • पहले परिदृश्य में, हमने पिक्सेल द्वारा पृष्ठ पर स्क्रॉल डाउन दिखाया।
  • दूसरे परिदृश्य में, हमने तत्व के दिखाई देने तक पृष्ठ को नीचे स्क्रॉल किया।
  • तीसरे परिदृश्य में, हमने पृष्ठ के निचले भाग में स्क्रॉल डाउन पेज दिखाया।
  • चौथे परिदृश्य में, वेब पेज पर क्षैतिज स्क्रॉल का चित्रण किया गया है।