Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 执行简单JS代码时发生Selenium WD NullPointerException_Java_Javascript_Selenium_Selenium Webdriver - Fatal编程技术网

Java 执行简单JS代码时发生Selenium WD NullPointerException

Java 执行简单JS代码时发生Selenium WD NullPointerException,java,javascript,selenium,selenium-webdriver,Java,Javascript,Selenium,Selenium Webdriver,花了1天时间找到以下问题的解决方案: 甚至不能使用selenium WD执行简单的js代码。它总是返回NullPointerException。已经阅读了大量的答案,但仍然找不到原因。下面的代码是经过1天调查后的代码(我刚刚尝试了一切): 以下是无法正常工作的原始代码: public class DPT_class { private WebDriver driver; @Before driver = new FirefoxDriver();

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

甚至不能使用selenium WD执行简单的js代码。它总是返回NullPointerException。已经阅读了大量的答案,但仍然找不到原因。下面的代码是经过1天调查后的代码(我刚刚尝试了一切):

以下是无法正常工作的原始代码:

    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当然是预定义的


谢谢

正如@Smit所说,根据您的
NullPointerException

您从未实际初始化过
WebDriver
对象,您试图将空对象强制转换为JavaScriptExecutor

根据您想使用哪种浏览器,您可以

WebDriver driver = new ChromeDriver();
WebDriver driver = new FirefoxDriver(); // etc...
另外,为什么要尝试使用2个驱动程序对象?你应该只有1个。将对象命名为“驱动程序”

已更改

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


不知道为什么,但它现在起作用了!非常感谢

您是否初始化过
driver2
实例?在这一点上与@Smit一致:给出的示例代码没有为
driver2
赋值,在这种情况下
js
也不会有值。您的编译器应该会抱怨您使用的值不是“明确指定的”。我编辑了原始帖子。不幸的是,这件事没有帮助:(我编辑了原文。不幸的是,这件事没有帮助:(
private WebDriver driver;
      driver = new FirefoxDriver();
      JavascriptExecutor js = (JavascriptExecutor) driver;
WebDriver driver = new FirefoxDriver();
  JavascriptExecutor js = (JavascriptExecutor) driver;