Rumah >Java >javaTutorial >JavascriptExecutor dalam Selenium

JavascriptExecutor dalam Selenium

王林
王林ke hadapan
2023-08-19 19:21:091121semak imbas

Selenium ialah sumber terbuka yang terkenal, alat automasi berasaskan web yang digunakan oleh ramai orang. Tetapi kadangkala ia menghadapi masalah berinteraksi dengan elemen tertentu mungkin timbul yang tidak dijangka menghalang pemacu web daripada melakukan tindakannya dan menjana hasil yang salah. Di sinilah JavascriptExecutor memainkan peranan penting dalam senario ini, membolehkan pemacu web berjaya melaksanakan operasi yang diperlukan. Kerumitan dan tiba-tiba menjadikannya lebih mudah untuk menangani keadaan.

Apakah JavascriptExecutor dalam Selenium?

Menggunakan antara muka yang dipanggil JavascriptExecutor, adalah mungkin untuk melaksanakan JavaScript melalui Selenium dan berinteraksi dengan HTML dalam penyemak imbas apabila menggunakan bahasa pengaturcaraan ini adalah perlu untuk menggunakan objek JavascriptExecutor untuk mencipta struktur ayat yang berbeza-beza panjang dan kerumitan yang penting untuk mengarang yang menarik. ayat. Oleh itu, Pelaksana JavaScript menyediakan cara untuk berkomunikasi dengan HTML dalam penyemak imbas web, sambil juga membolehkan pengaturcara menggunakan gaya penulisan JavaScript unik mereka sendiri untuk membina ungkapan yang bijak dan fleksibel.

Kaedah

Berikut adalah kaedah yang disediakan oleh JavascriptExecutor dalam Selenium:

Terjemahan bahasa Cina bagi

ExecuteScript

ialah:

Execute script

Melaksanakan JavaScript dalam tetingkap atau bingkai yang dipilih pada masa ini tidak pernah semudah ini Dengan memanggil fungsi tanpa nama, kaedah ini membolehkan pengguna mendapat ganjaran daripada pelbagai jenis data, termasuk −

  • Elemen Web

  • Senarai

  • String

  • Panjang

  • Boolean

  • ExecuteAsyncScript

Pelaksanaan JavaScript tak segerak ialah pendekatan berbilang benang untuk melaksanakan tugasan JavaScript individu dalam tetingkap atau bingkai semasa Ia membolehkan penghuraian halaman diteruskan, mengoptimumkan prestasi dan memberikan fleksibiliti yang hebat Memecahkan kod kepada komponen yang mudah dikenal pasti dengan kerumitan dan konteks yang berbeza-beza kunci untuk mencapai objektif ini. Pendekatan ini melibatkan penciptaan segmen ringkas di beberapa kawasan sambil menampung bahagian yang lebih panjang dan rumit di bahagian lain Dengan kaedah ini, JavaScript tidak segerak dijalankan dengan cara yang cekap dan optimum

Ketahui cara menggunakan JavascriptExecutor

  • Langkah 1 - Import pakej

  • import org.openqa.selenium.JavascriptExecutor;
    
  • Langkah 2 - Buat rujukan

  • javascriptExecutor js = (JavascriptExecutor) driver;
    
  • Langkah 3 - Panggil kaedah JavascriptExecutor

  • js.executeScript(script, args);
    
Pelaksanaan

Terjemahan bahasa Cina bagi

Contoh

ialah:

Contoh

// importing the package
Import org.openqa.selenium.JavascriptExecutor;

// creating a reference
JavascriptExecutor js = (JavascriptExecutor) driver;

// calling the method
js.executeScript(script, args);

Contoh JavascriptExecutor dalam Selenium

Contoh 1

Segarkan semula tetingkap penyemak imbas.

JavascriptExecutor js = (JavascriptExecutor) driver;

js.executeScript("location.reload()");

Contoh 2

Untuk menghantar teks.

JavascriptExecutor js = (JavascriptExecutor) driver;

js.executeScript("document.getElementByID(‘element id ’).value = ‘xyz’;");

Contoh 3

Jana tetingkap timbul amaran.

JavascriptExecutor js = (JavascriptExecutor)driver;

Js.executeScript("alert(‘hello world’);");

Contoh 4

Untuk mendapatkan teks Dalaman halaman web.

avascriptExecutor js = (JavascriptExecutor)driver;

string sText =  js.executeScript("return document.documentElement.innerText;").toString();

Contoh 5

Untuk mendapatkan tajuk halaman web.

avascriptExecutor js = (JavascriptExecutor)driver;

string sText =  js.executeScript("return document.title;").toString();
Terjemahan bahasa Cina bagi

Contoh 6

ialah:

Contoh 6

Tatal halaman.

JavascriptExecutor js = (JavascriptExecutor)driver;

 //Vertical scroll – down by 150 pixels

 js.executeScript("window.scrollBy(0,150)");

Pilih elemen menggunakan javascriptExecutor

Dalam contoh ini, kami menggunakan pemacu web selenium dan javascriptExecutor untuk membuka tapak web WaytoClass dan klik pada elemen.

Penjelasan

Skrip yang dinyatakan berikut akan melancarkan penyemak imbas tepi, membawa anda ke tapak web WaytoClass dan menggunakan javascriptExecutor untuk mengklik elemen tertentu Jadi, mari semak cara ia berfungsi.

  • Buat kelas pemacu tepi dan sediakan laluan youredgedriver.exe dalam harta sistem "webdriver.edge.driver".

  • Maksimumkan tetingkap dengan menggunakan driver.manage().window().maximize()

  • Gunakan driver.get("pautan URL") untuk membuka URL

  • Gunakan kaedah finddby xpath untuk mendapatkan elemen Java "driver.findElement(By.xpath("alamat xpath"));"

  • Buat rujukan untuk javascriptExecutor dengan menggunakan javascriptExecutor js=(javascriptExecutor) pemandu;"

  • Panggil kaedah javascriptExecutor dan hantar elemen halaman web untuk diklik "js.executeScript("arguments[0].click();",webelement);"

  • Terjemahan bahasa Cina bagi
Contoh

ialah:

Contoh

import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.edge.EdgeDriver;
public class waytoclass {
   public static void main(String args[]) {
      System.setProperty(
         "webdriver.edge.driver",
         "C:\Users\ADMIN\Documents\Selenium\msedgedriver.exe");
	
      // Instantiate a Driver class.
      WebDriver driver = new EdgeDriver();
	
      // Maximize the browser
      driver.manage().window().maximize();
	
      // Launch Website
      driver.get("https://www.waytoclass.com/");
	
      WebElement java = driver.findElement(
         By.xpath("//*[@id="hslider"]/li[6]/a"));
	
      // Create a reference
      JavascriptExecutor js = (JavascriptExecutor)driver;
	
      // Call the JavascriptExecutor methods
      js.executeScript("arguments[0].click();", java);
   }
}

Output

Starting MSEdgeDriver 98.0.1108.56 (9a336a18ae89157b3c7ea0568a9cbced8ebc3f7) on port 55401
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping MSEdgeDriver safe. MSEdgeDriver was started successfully.

NOTA - Selepas menunjukkan output di atas, ia akan membuka laman web secara automatik dan klik pada elemen.

JavascriptExecutor dalam Selenium

Kesimpulan

Meningkatkan keupayaan automasi di web dimungkinkan melalui penggunaan JavascriptExecutor yang membolehkan pembangun melibatkan diri dengan elemen halaman melebihi apa yang biasanya boleh dilaksanakan menggunakan Selenium Selain itu, dengan tahap fleksibiliti dan penyesuaian yang lebih tinggi yang ditambahkan pada automasi web persamaan boleh dipertingkatkan dengan lebih baik dari segi kelajuan dan kecekapan. Walaupun kerumitannya untuk pengkod yang tidak berpengalaman yang tidak mahir dalam selok-belok JavaScript, penguasaan bahasa ini boleh membolehkan organisasi yang berusaha untuk memajukan persona internet mereka.

Atas ialah kandungan terperinci JavascriptExecutor dalam Selenium. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Artikel sebelumnya:Node.js lwn JavaArtikel seterusnya:Node.js lwn Java