2013-09-26 39 views
0

时效1一天,在寻找解决以下问题:硒WD NullPointerException异常而执行简单的JS代码

无法执行使用硒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代码,如警报(document.title)带和不带返回和引号。 * baseUrl当然是预定义的。

谢谢!

+4

你有没有初始化'driver2'实例? – Smit

+0

同意@Smit这个例子:给出的示例代码没有给'driver2'赋值,在这种情况下'js'也不会有值。你的编译器应该抱怨你正在使用一个不是“明确赋值”的值。 – rutter

+0

我编辑了原帖。不幸的是,这件事并没有帮助:( – dred17

回答

2

由于@Smit说,和每个你NullPointerException

你从来没有真正初始化你WebDriver对象,你attemting投空对象,以JavaScriptExecutor。

根据您要使用什么样的浏览器,你能做到..

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

而且,为什么你试图使用2个驱动程序对象?您应该只有1.保持您的对象名为driver

+0

我编辑了原帖。不幸的是,这件事并没有帮助:( – dred17

0

物是人非

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

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

不知道为什么,但它的作品吧!非常感谢!

相关问题