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.
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.
Berikut adalah kaedah yang disediakan oleh JavascriptExecutor dalam Selenium:
Terjemahan bahasa Cina bagiMelaksanakan 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 JavascriptExecutorLangkah 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);
// importing the package Import org.openqa.selenium.JavascriptExecutor; // creating a reference JavascriptExecutor js = (JavascriptExecutor) driver; // calling the method js.executeScript(script, args);
JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript("location.reload()");
JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript("document.getElementByID(‘element id ’).value = ‘xyz’;");
JavascriptExecutor js = (JavascriptExecutor)driver; Js.executeScript("alert(‘hello world’);");
avascriptExecutor js = (JavascriptExecutor)driver; string sText = js.executeScript("return document.documentElement.innerText;").toString();
avascriptExecutor js = (JavascriptExecutor)driver; string sText = js.executeScript("return document.title;").toString();
JavascriptExecutor js = (JavascriptExecutor)driver; //Vertical scroll – down by 150 pixels js.executeScript("window.scrollBy(0,150)");
Penjelasan
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); } }
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.
Kesimpulan
Atas ialah kandungan terperinci JavascriptExecutor dalam Selenium. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!