Selenium WebDriver中的JavaScript Executor

时间:2014-06-07 15:00:22

标签: selenium-webdriver

我想在我的脚本中使用JavaScript。

我创建了object JavaScriptExecutor,但executeScript()方法不存在。使用executeScript()方法时显示错误。

这是我用过的代码:

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);

    }
}

4 个答案:

答案 0 :(得分:17)

对我有用;您在JavaScriptExecutor上使用大写S时出错。相反,您应该javascriptExecutor使用小写s

试试这段代码:

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);

}
}

这对我有用!!如果它适合你,请重击!

答案 1 :(得分:2)

请确保您已导入正确的包裹。

使用Java Script的预期包:

import org.openqa.selenium.JavascriptExecutor;

试试这个包。这应该可以解决您的错误。

答案 2 :(得分:1)

说明:

  

添加最新的jar(我正在使用3.0 beta selenium jar)。导入Javascript库包。通过强制转换为JavascriptExecutor获取Web驱动程序对象,并运行您要运行的任何Java脚本。

代码:

import com.thoughtworks.selenium.webdriven.JavascriptLibrary;
Object ob = ((JavascriptExecutor) webDriver()).executeScript("return document.domain").toString();
System.out.println(ob);

答案 3 :(得分:0)

您可以从executeScript返回Object。稍后您可以从中获取文本。

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

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

通过这种方式,您可以返回任何类型的值,而不仅仅是字符串。