我尝试在我的代码中使用 JavascriptExecutor
,其中涉及传递 WebElement
并从中获取一些信息。我遇到了一些错误,所以我简化了它以找到问题。
String test = ((JavascriptExecutor)driver).executeScript("返回参数[0];", "macon").toString();
该代码将无法运行。它会抛出一个NullPointerException
。我可以通过不尝试访问传递的变量来避免它。我通过什么似乎并不重要;可以是 int、string、WebElement
等。
那怎么了?我看不出在线示例和我的代码之间有任何差异,但显然有一些东西。我使用的是 Firefox WebDriver,我的 Selenium 版本是 2.44.0
最佳答案
您只需将结果转换为String
:
JavaScriptExecutor js = (JavaScriptExecutor) driver;
String test = (String) js.executeScript("return arguments[0];", "macon");
此外,selenium 2.44 和 Firefox 35/36 之间存在兼容性问题,影响了 javascript 代码的执行:
关于java - 将参数传递给 JavascriptExecutor 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29391390/