Java 执行简单JS代码时发生Selenium WD NullPointerException
花了1天时间找到以下问题的解决方案: 甚至不能使用selenium WD执行简单的js代码。它总是返回NullPointerException。已经阅读了大量的答案,但仍然找不到原因。下面的代码是经过1天调查后的代码(我刚刚尝试了一切): 以下是无法正常工作的原始代码: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();
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;