Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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
SeleniumWebDriverJava中的JavascriptExecutor_Java_Selenium - Fatal编程技术网

SeleniumWebDriverJava中的JavascriptExecutor

SeleniumWebDriverJava中的JavascriptExecutor,java,selenium,Java,Selenium,我只是想问一个简单的问题。 我正在学习一些关于测试的知识,再一次我遇到了一个小问题 在我的代码中,我想调用一个将使用JavascriptExecutor的方法 我写道: JavascriptExecutor js = (JavascriptExecutor)driver 然后我在方法中使用它: public void clickSearch() { js.executeScript("arguments[0].click()", sOmEtHiNg);} 但是,当我启动代码时,我得到:Nu

我只是想问一个简单的问题。 我正在学习一些关于测试的知识,再一次我遇到了一个小问题

在我的代码中,我想调用一个将使用JavascriptExecutor的方法

我写道:

JavascriptExecutor js = (JavascriptExecutor)driver 
然后我在方法中使用它:

public void clickSearch()
{ js.executeScript("arguments[0].click()", sOmEtHiNg);}
但是,当我启动代码时,我得到:
Null指针异常

但是。。。当我在方法中简单地使用JavascriptExecutor时 例如:

public void clickSearch()
{ ((JavascriptExecutor)driver).executeScript("arguments[0].click()",eight); }
然后一切正常,我没有错误

有人能告诉我我在哪里犯了导致空指针异常的错误吗

非常感谢:-)

看起来这里的
js
可能为null,这将引发异常。我们需要确保
js
在您的
clickSearch()
方法的范围内。你能试试这个吗

public void clickSearch()
{
    JavascriptExecutor js = (JavascriptExecutor)driver 
    js.executeScript("arguments[0].click()", sOmEtHiNg);
}
或者可能:

JavascriptExecutor js = (JavascriptExecutor)driver;
clickSearch(js);

public void clickSearch(JavascriptExecutor js)
{
    js.executeScript("arguments[0].click()", sOmEtHiNg);
}
看起来这里的
js
可能为null,这将引发异常。我们需要确保
js
在您的
clickSearch()
方法的范围内。你能试试这个吗

public void clickSearch()
{
    JavascriptExecutor js = (JavascriptExecutor)driver 
    js.executeScript("arguments[0].click()", sOmEtHiNg);
}
或者可能:

JavascriptExecutor js = (JavascriptExecutor)driver;
clickSearch(js);

public void clickSearch(JavascriptExecutor js)
{
    js.executeScript("arguments[0].click()", sOmEtHiNg);
}
这个有效。 第二种是由于阶级不同而不能使用的。 我在一个上面写,在另一个上面运行:-) 再次非常感谢:-)

这个有效。 第二种是由于阶级不同而不能使用的。 我在一个上面写,在另一个上面运行:-) 再次非常感谢:-)