执行简单JS代码时Selenium WD NullPointerException

时间:2013-09-26 22:20:02

标签: java javascript selenium selenium-webdriver

花了1天时间找到解决以下问题的方法:

使用selenium WD无法执行简单的js代码。它总是返回NullPointerException。已经读过很多答案,但仍然找不到原因。下面的代码是经过1天调查后的代码(我刚尝试了所有内容):

WebDriver driver2;
JavascriptExecutor js = (JavascriptExecutor)driver2;
driver.get(baseUrl+ "/");
js.executeScript("return showAlert()");

以下是原始代码无效:

    public class DPT_class {
      private WebDriver driver;

      @Before
      driver = new FirefoxDriver();
      JavascriptExecutor js = (JavascriptExecutor) driver;

      @Test
      //some testing code here
      driver.get(baseUrl+ "/");
      js.executeScript("return showAlert()");
}

对于任何其他js代码(例如带有和不带返回和引号的alert(document.title))也是如此。 * baseUrl当然是预定义的。

谢谢!

2 个答案:

答案 0 :(得分:2)

正如@Smit所说,并按照NullPointerException

你从来没有真正初始化你的WebDriver对象,并且你正在试图将一个空对象转换为JavaScriptExecutor。

根据您要使用的浏览器类型,您可以执行..

WebDriver driver = new ChromeDriver();
WebDriver driver = new FirefoxDriver(); // etc...

另外,为什么要尝试使用2个驱动程序对象?你应该只有1.保持你的对象名为driver

答案 1 :(得分:0)

已更改

private WebDriver driver;
      driver = new FirefoxDriver();
      JavascriptExecutor js = (JavascriptExecutor) driver;

WebDriver driver = new FirefoxDriver();
  JavascriptExecutor js = (JavascriptExecutor) driver;

不知道为什么,但它现在有效!非常感谢!