Pelaksana JavaScript di Selenium WebDriver

Saya ingin menggunakan JavaScript untuk skrip saya.

Saya telah membuat object dari JavaScriptExecutor, tetapi metode executeScript() tidak ada. Ini menunjukkan kesalahan ketika saya menggunakan metode executeScript().

Ini adalah kode yang saya gunakan:

import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.JavascriptExecutor;


public class GetDomain_JS {

    public static void main(String[] args) {
        WebDriver driver=new FirefoxDriver();
        driver.get("http://only-testing-blog.blogspot.in/2013/11/new-test.html");
        driver.manage().window().maximize();

        System.out.println(driver.getCurrentUrl());

        JavaScriptExecutor js=(JavaScriptExecutor) driver;

        String domain_name=(String) js.executeScript("return document.domain");

                System.out.println(doamin_name);

    }
}

person Ramarajan    schedule 07.06.2014    source sumber
comment
Saya harus menggunakan JavascriptExecutor daripada JavaScriptExecutor.   -  person Ramarajan    schedule 08.06.2014


Jawaban (4)


Ini berhasil untuk saya; Anda melakukan kesalahan pada JavaScriptExecutor dengan huruf besar S. Sebaliknya, Anda harus memiliki javascriptExecutor dengan huruf kecil s.

Coba kode ini:

import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;


public class GetDomain_JS {

public static void main(String[] args) {
    WebDriver driver=new FirefoxDriver();
    driver.get("http://only-testing-blog.blogspot.in/2013/11/new-test.html");
    driver.manage().window().maximize();

    System.out.println(driver.getCurrentUrl());

    JavascriptExecutor js=(JavascriptExecutor) driver;

    String domain_name=(String) js.executeScript("return document.domain");

            System.out.println(domain_name);

}
}

Ini berhasil untuk saya!! Silakan angkat jempol jika itu berhasil untuk Anda!

person pelican    schedule 08.06.2014
comment
Apa bedanya? Kesalahan ketik yang diperbaiki di System.out.println(doamin_name);? - person olyv; 08.06.2014
comment
Ini berfungsi sekarang, Kesalahannya adalah: Saya telah membuat instance JavaScriptExecutor, JavascriptExecutor (huruf kecil S) adalah yang benar. - person Ramarajan; 08.06.2014
comment
JavascriptExecutor js=pengandar (JavascriptExecutor); Saya tidak mengerti baris ini, JavascriptExecutor adalah sebuah antarmuka, jadi kami mentransmisikan objek driver ke JavascriptExecutor?? - person Lokesh Sanapalli; 20.04.2016

Pastikan Anda telah mengimpor paket yang benar.

Paket yang diharapkan untuk bekerja dengan Java Script:

import org.openqa.selenium.JavascriptExecutor;

Coba paket ini. Ini akan menyelesaikan kesalahan Anda.

person Praveen    schedule 07.06.2014

Penjelasan:

Tambahkan toples terbaru (Saya menggunakan toples Selenium 3.0 beta). Impor paket perpustakaan Javascript. Ambil objek driver web dengan mentransmisikan ke JavascriptExecutor dan jalankan skrip Java apa pun yang ingin Anda jalankan.

Kode:

import com.thoughtworks.selenium.webdriven.JavascriptLibrary;
Object ob = ((JavascriptExecutor) webDriver()).executeScript("return document.domain").toString();
System.out.println(ob);
person Jitesh Sojitra    schedule 03.09.2016
comment
Jawaban anda tentunya patut untuk sedikit penjelasan. Ini akan menambah konten yang dapat dicari, sehingga pengguna lain dapat menemukannya dan mendapatkan manfaat dari pekerjaan kami. - person J. Chomel; 03.09.2016
comment
Setuju, saya pikir ada banyak jawaban sehingga semua tidak tahu apa yang dikatakan kode. Menambahkan beberapa info lebih lanjut. - person Jitesh Sojitra; 03.09.2016

Anda dapat mengembalikan Objek dari eksekusiScript. Nanti Anda bisa mengeluarkan teksnya.

Object domain_name = js.executeScript("return document.domain");

System.out.println(domain_name.toString());

Dengan cara ini, Anda bisa mengembalikan nilai jenis apa pun dan bukan hanya string.

person Purus    schedule 08.06.2014