0

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

谢谢!

4

2 回答 2

2

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

您从未真正初始化您的WebDriver对象,并且您正在尝试将一个空对象强制转换为 JavaScriptExecutor。

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

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

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

于 2013-09-27T04:09:50.870 回答
0

已经改变

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

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

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

于 2013-09-27T12:06:07.287 回答