java - 将参数传递给 JavascriptExecutor 的正确方法是什么?

标签 java selenium nullpointerexception

我尝试在我的代码中使用 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/

相关文章:

java - Hadoop - 如何使用和减少多个输入?

java - 获取错误为 "method chrome() is undefined for the type DesiredCapabilities"

java - 链接两个作业时 hadoop.mapreduce.lib.input.FileInputFormat.getBlockIndex 中的 NullPointerException

java - Swing读取Excel NullPointerException

java - Android:将字符串转换为 JSONObject 时出现异常

java - 类似于 HQL 中的 % 运算符

java - 两个日期之间的秒数,仅限于可变工作时间

java - Assert + Selenium 4 相对定位器

Python Selenium is_displayed() 返回 true 并且仍然引发 ElementNotVisible 异常?

android - 使用 JSoup 解析 NullPointerException