Cara Menatal ke Bawah atau KE ATAS Halaman di Selenium Webdriver

Isi kandungan:

Anonim

Apakah bar tatal?

Bar tatal adalah membolehkan anda bergerak di sekitar layar dalam arah mendatar atau menegak jika tatal halaman semasa tidak sesuai dengan kawasan yang kelihatan di skrin. Ia digunakan untuk menggerakkan tingkap ke atas dan ke bawah.

Selenium Webdriver tidak memerlukan tatal untuk melakukan tindakan kerana memanipulasi DOM. Tetapi di laman web tertentu, elemen hanya dapat dilihat setelah pengguna menatal ke dalamnya. Dalam kes sedemikian, perlu dilakukan pengguliran.

Bar tatal adalah dua jenis: bar tatal mendatar dan menegak seperti yang ditunjukkan dalam tangkapan skrin di bawah.

Tatal di Selenium

Untuk menatal menggunakan Selenium, anda boleh menggunakan antara muka JavaScriptExecutor yang membantu melaksanakan kaedah JavaScript melalui Selenium Webdriver

Ketahui lebih lanjut mengenai JavaScriptExecutor

Sintaks:

Pemacu JavascriptExecutor js = (JavascriptExecutor);js.executeScript (Skrip, Hujah);
  • Skrip - Ini adalah JavaScript yang perlu dilaksanakan.
  • Hujah - Ini adalah hujah kepada skrip. Ia pilihan.

Selenium Skrip untuk menatal ke bawah halaman

Mari, lihat tatal ke bawah laman web menggunakan pemacu web selenium dengan 3 senario berikut:

  • Senario 1: Untuk menatal halaman web ke bawah mengikut piksel.
  • Senario 2: Untuk menatal ke bawah halaman web dengan keterlihatan elemen.
  • Senario 3: Untuk menatal halaman web di bahagian bawah halaman.
  • Senario 4: Skrol mendatar di laman web.

Senario 1: Untuk menatal halaman web ke bawah mengikut piksel.

Skrip Selenium

import org.openqa.selenium.JavascriptExecutor;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.testng.annotations.Test;kelas awam ScrollByPixel {Pemacu WebDriver;@ Ujiankekosongan awam ByPixel () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");pemacu = ChromeDriver baru ();Pemacu JavascriptExecutor js = (JavascriptExecutor);// Lancarkan aplikasidriver.get ("http://demo.guru99.com/test/guru99home/");// Untuk memaksimumkan tetingkap. Kod ini mungkin tidak berfungsi dengan balang Selenium 3. Sekiranya skrip gagal, anda boleh membuang baris di bawahdriver.manage (). window (). maksimalkan ();// Ini akan menatal ke bawah halaman dengan tegak 1000 pikseljs.executeScript ("window.scrollBy (0,1000)");}}

Penerangan Skrip : Dalam kod di atas terlebih dahulu kita melancarkan URL yang diberikan di penyemak imbas Chrome. Seterusnya, tatal halaman dengan 1000 piksel melalui executeScript Kaedah Javascript ScrollBy () menatal laman web ke bilangan piksel tertentu.

Sintaks kaedah ScrollBy () adalah:

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

piksel-x adalah nombor pada paksi-x, ia bergerak ke kiri jika bilangannya positif dan ia bergerak ke kanan jika bilangannya negatif. piksel-y adalah nombor pada paksi-y, ia bergerak ke bawah jika bilangannya adalah positif dan ia bergerak ke atas jika bilangannya negatif.

Contoh:

js.executeScript ("window.scrollBy (0,1000)"); // Tatal ke bawah secara menegak hingga 1000 piksel 

Analisis output: Berikut adalah output ketika anda menjalankan skrip di atas.

Senario 2: Untuk menatal ke bawah halaman web dengan keterlihatan elemen.

Skrip 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;kelas awam ScrollByVisibleElement {Pemacu WebDriver;@ Ujiankekosongan awam ByVisibleElement () {System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");pemacu = ChromeDriver baru ();Pemacu JavascriptExecutor js = (JavascriptExecutor);// Lancarkan aplikasidriver.get ("http://demo.guru99.com/test/guru99home/");// Cari elemen dengan teks pautan dan simpan dalam pemboleh ubah "Elemen"WebElement Element = driver.findElement (By.linkText ("Linux"));// Ini akan menatal halaman sehingga elemen dijumpaijs.executeScript ("argumen [0] .scrollIntoView ();", Elemen);}}

Penerangan Skrip: Dalam kod di atas, pertama-tama kami melancarkan url yang diberikan dalam penyemak imbas Chrome. Seterusnya, tatal halaman sehingga elemen yang disebutkan dapat dilihat pada halaman semasa. Kaedah javascript scrollIntoView () menatal halaman sehingga elemen yang disebutkan dalam paparan penuh:

js.executeScript ("argumen [0] .scrollIntoView ();", Elemen); 

"argumen [0]" bermaksud indeks pertama halaman bermula pada 0.

Di mana "Elemen" adalah pencari di laman web.

Analisis output: Berikut adalah output ketika anda menjalankan skrip di atas.

Senario 3: Untuk menatal halaman web di bahagian bawah halaman.

Skrip Selenium

import org.openqa.selenium.JavascriptExecutor;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.testng.annotations.Test;kelas awam ScrollByPage {Pemacu WebDriver;@ Ujiankekosongan awam ByPage () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");pemacu = ChromeDriver baru ();Pemacu JavascriptExecutor js = (JavascriptExecutor);// Lancarkan aplikasidriver.get ("http://demo.guru99.com/test/guru99home/");// Ini akan menatal laman web hingga akhir.js.executeScript ("window.scrollTo (0, document.body.scrollHeight)");}}

Penerangan Skrip: Dalam kod di atas, pertama-tama kami melancarkan url yang diberikan dalam penyemak imbas Chrome. Seterusnya, tatal ke bahagian bawah halaman. Kaedah javascript scrollTo () tatal hingga akhir halaman.

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

"document.body.scrollHeight" mengembalikan ketinggian lengkap badan iaitu laman web.

Analisis output: Berikut adalah output ketika anda menjalankan skrip di atas.

Senario 4: Skrol mendatar di laman web.

Skrip 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;kelas awam HorizontalScroll {Pemacu WebDriver;@ Ujiankekosongan awam ScrollHorizontally () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");pemacu = ChromeDriver baru ();Pemacu JavascriptExecutor js = (JavascriptExecutor);// Lancarkan aplikasidriver.get ("http://demo.guru99.com/test/guru99home/scrolling.html");WebElement Element = driver.findElement (By.linkText ("VBScript"));// Ini akan menatal halaman secara mendatar sehingga elemen dijumpaijs.executeScript ("argumen [0] .scrollIntoView ();", Elemen);}}

Penerangan Skrip: Dalam kod di atas, pertama-tama kami melancarkan url yang diberikan dalam penyemak imbas Chrome. Seterusnya, tatal halaman secara mendatar sehingga elemen yang disebutkan dapat dilihat pada halaman semasa. Kaedah javascript scrollIntoView () menatal halaman sehingga elemen yang disebutkan dalam paparan penuh:

js.executeScript ("argumen [0] .scrollIntoView ();", Elemen);

Analisis output: Berikut adalah output ketika anda menjalankan skrip di atas.

Ringkasan

  • Dalam tutorial di atas, kami menggambarkan tatal laman web melalui senario yang berbeza.
  • Dalam senario pertama, kami menunjukkan tatal ke bawah pada halaman mengikut piksel.
  • Dalam senario kedua, kami menunjukkan tatal ke bawah halaman sehingga kelihatan elemen.
  • Dalam senario ketiga, kami menunjukkan tatal ke bawah halaman di bahagian bawah halaman.
  • Dalam senario keempat, digambarkan tatal mendatar di laman web.