Kaydırma çubuğu nedir?
Kaydırma Çubuğu, mevcut sayfa kaydırması ekranın görünür alanına sığmıyorsa, ekranda yatay veya dikey yönde hareket etmenizi sağlar. Pencereyi yukarı ve aşağı hareket ettirmek için kullanılır.
Selenium Webdriver, DOM'u işlediği için eylemleri gerçekleştirmek için kaydırma gerektirmez. Ancak belirli web sayfalarında, öğeler yalnızca kullanıcı bunlara kaydırdığında görünür hale gelir. Bu gibi durumlarda kaydırma gerekli olabilir.
Kaydırma çubuğu iki tiptedir: Aşağıdaki ekran görüntüsünde gösterildiği gibi yatay ve dikey kaydırma çubuğu.
Selenium'da ilerleyin
Selenium kullanarak kaydırmak için, Selenium Webdriver aracılığıyla JavaScript yöntemlerini çalıştırmaya yardımcı olan JavaScriptExecutor arayüzünü kullanabilirsiniz.
JavaScriptExecutor hakkında daha fazla bilgi edinin
Sözdizimi:
JavascriptExecutor js = (JavascriptExecutor) sürücüsü;js.executeScript (Komut Dosyası, Bağımsız Değişkenler);
- Komut Dosyası - Bu, yürütülmesi gereken JavaScript'tir.
- Argümanlar - Betiğin argümanlarıdır. Opsiyoneldir.
Sayfayı aşağı kaydırmak için Selenium Script
Aşağıdaki 3 senaryo ile selenium webdriver kullanarak bir web sayfasını aşağı kaydırmayı görelim:
- Senaryo 1: Web sayfasını piksel bazında aşağı kaydırmak için.
- Senaryo 2: Öğenin görünürlüğüne göre web sayfasını aşağı kaydırmak için.
- Senaryo 3: Sayfanın altındaki web sayfasını aşağı kaydırmak için.
- Senaryo 4: Web sayfasında yatay kaydırma.
Senaryo 1: Web sayfasını piksel bazında aşağı kaydırmak için.
Selenyum Senaryosu
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 sürücüsü;@Ölçekpublic void ByPixel () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");sürücü = yeni ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) sürücüsü;// Uygulamayı başlatdriver.get ("http://demo.guru99.com/test/guru99home/");// Pencereyi büyütmek için. Bu kod Selenium 3 kavanozlarla çalışmayabilir. Komut dosyası başarısız olursa aşağıdaki satırı kaldırabilirsinizdriver.manage (). window (). maximize ();// Bu, sayfayı 1000 piksel dikey kaydırırjs.executeScript ("window.scrollBy (0,1000)");}}
Komut Dosyası Açıklaması : Yukarıdaki kodda önce verilen URL'yi Chrome tarayıcısında başlatıyoruz. Ardından, executeScript boyunca 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-piksel, y-piksel)");
x-piksel, x eksenindeki sayıdır, sayı pozitifse sola hareket eder ve sayı negatifse sağa hareket eder. y-piksel, y eksenindeki sayıdır, sayı ise aşağıya hareket eder. pozitif ve sayı negatifse yukarı doğru hareket eder.
Misal:
js.executeScript ("window.scrollBy (0,1000)"); // Dikey olarak 1000 piksel aşağı kaydır
Çıktı analizi: Yukarıdaki betiği çalıştırdığınızda çıktı burada.
Senaryo 2: Öğenin görünürlüğüne göre web sayfasını aşağı kaydırmak için.
Selenyum Senaryosu
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 sürücüsü;@Ölçekpublic void ByVisibleElement () {System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");sürücü = yeni ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) sürücüsü;//Uygulamayı başlatdriver.get ("http://demo.guru99.com/test/guru99home/");// Öğeyi bağlantı metnine göre bulun ve "Öğe" değişkeninde saklayınWebElement Element = driver.findElement (By.linkText ("Linux"));// Bu, öğe bulunana kadar sayfayı kaydırırjs.executeScript ("arguments [0] .scrollIntoView ();", Öğe);}}
Komut Dosyası Açıklaması: Yukarıdaki kodda, önce verilen url'yi Chrome tarayıcısında başlatıyoruz. Ardından, söz konusu öğ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 ();", Öğe);
"bağımsız değişkenler [0]", 0'dan başlayan ilk sayfa dizini anlamına gelir.
Bir "Eleman" ın web sayfasındaki yer bulucu olduğu yer.
Çıktı analizi: Yukarıdaki betiği çalıştırdığınızda çıktı burada.
Senaryo 3: Sayfanın altındaki web sayfasını aşağı kaydırmak için.
Selenyum Senaryosu
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 sürücüsü;@Ölçekpublic void ByPage () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");sürücü = yeni ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) sürücüsü;// Uygulamayı başlatdriver.get ("http://demo.guru99.com/test/guru99home/");// Bu, web sayfasını sonuna kadar kaydırır.js.executeScript ("window.scrollTo (0, document.body.scrollHeight)");}}
Komut Dosyası Açıklaması: Yukarıdaki kodda, önce verilen url'yi Chrome tarayıcısında başlatıyoruz. Ardından, sayfanın 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 tam yüksekliğini, yani web sayfasını döndürür.
Çıktı analizi: Yukarıdaki betiği çalıştırdığınızda çıktı burada.
Senaryo 4: Web sayfasında yatay kaydırma.
Selenyum Senaryosu
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 sürücüsü;@Ölçekpublic void ScrollHorizontally () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");sürücü = yeni ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) sürücüsü;// Uygulamayı başlatdriver.get ("http://demo.guru99.com/test/guru99home/scrolling.html");WebElement Öğesi = driver.findElement (By.linkText ("VBScript"));// Bu, öğe bulunana kadar sayfayı yatay olarak kaydırırjs.executeScript ("arguments [0] .scrollIntoView ();", Öğe);}}
Komut Dosyası Açıklaması: Yukarıdaki kodda, önce verilen url'yi Chrome tarayıcısında başlatıyoruz. Ardından, 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 ();", Öğe);
Çıktı analizi: Yukarıdaki betiği çalıştırdığınızda çıktı burada.
Özet
- Yukarıdaki eğiticide, web sayfasının farklı senaryolarla kaydırılmasını gösteriyoruz.
- İlk senaryoda, kaydırmayı sayfa piksel gösterdik.
- İkinci senaryoda, öğenin görünene kadar sayfanın aşağı kaydırılmasını gösterdik.
- Üçüncü senaryoda, sayfanın alt kısmında aşağı kaydırmayı gösterdik.
- Dördüncü senaryoda, web sayfasındaki yatay kaydırma gösterildi.