当前位置: 首页 > 面试题库 >

driver.executeScript()为简单的javascript返回NullPointerException

常朗
2023-03-14
问题内容

js.executeScript("return document.title")可以按预期工作,但是我不确定为什么我的代码返回空指针错误。这是怎么了

   String testJs= "function test() {arr = 111; return arr;}; test();";
   JavascriptExecutor js = (JavascriptExecutor) driver;
   int a = (Integer) js.executeScript(testJS);

问题答案:

这个javascript

function test() {arr = 111; return arr;}; 
test();

调用方法,test()但对结果不执行任何操作,即。不会将其返回给调用方。

所以

int a = (Integer) js.executeScript(testJS);

将返回null并尝试被取消引用,这将因为取消引用null引发而失败NullPointerException

Javadoc的JavascriptExecutor.html#executeScript(java.lang.String, java.lang.Object...)

也许您想要JavaScript

function test() {arr = 111; return arr;}; 
return test();

这对我有用

System.setProperty("webdriver.chrome.driver", "C:\\Users\\me\\Downloads\\chromedriver.exe");
ChromeDriver driver = new ChromeDriver();
JavascriptExecutor executor = (JavascriptExecutor) driver;
String js = "function test() {" +
            "arr = 111; return arr;" +
            "}; return test()";
Long a = (Long) executor.executeScript(js);
System.out.println(a);


 类似资料:
  • 问题内容: 为什么这个简单的计算返回0 虽然这实际上可以正确计算? 第一个例子有什么问题? 问题答案: 在Python 2中,执行整数除法时为零。由于结果小于。 您可以通过添加到脚本中来“修复”此问题。使用运算符并用于整数除法时,这将始终执行浮点除法。 另一种选择是使至少一个操作数为浮点数,例如。 在Python 3中,始终为。

  • 问题内容: 为什么此javascript返回108而不是2008?它得到正确的日期和月份,但不正确的年份? year= 108? 问题答案: 这是一个Y2K问题,仅计算自1900年以来的年份。 有迹象表明,目前潜在的兼容性问题已经被弃用,取而代之的-从怪异模式: 为了使事情变得更加复杂,如今不建议使用date.getYear(),而应使用date.getFullYear(),而旧版本的浏览器则不支

  • 你好,我正在复习Java练习。我有一个非常简单的程序:有两个int值,以及一个布尔变量。 i) 如果其中一个值为负值,另一个值为正值,则程序将返回true。 ii)但是,如果布尔变量为true,则程序只能在两个int值均为负值时返回true。 我已经用一堆int值对此进行了测试,但是一旦我给这个方法(1,-1)的值,以及布尔值设置为true,程序似乎就会崩溃。任何帮助或解释都将不胜感激。

  • 问题内容: 我使用xampp。我执行了MySQL连接: 我收到了回显命令的输出(通过检查布尔值返回的值),表明已建立连接并找到了数据库$ db。 但最简单的查询如下: 返回false。我该如何调试原因? 问题答案: 强制性更新 :由于mysql ext不再存在,以下是我在我的网站上根据在Stack Overflow上回答1000多个问题的经验编写的其余两个MySQL API的答案: 如何报告mys

  • 问题内容: 我的问题实质上是对该问题的后续行动。 在上面,Spring将“ Hello World”添加到响应正文中。如何返回字符串作为JSON响应?我知道我可以添加引号,但这感觉更像是黑客。 请提供任何示例以帮助解释此概念。 注意:我不希望将其直接写到HTTP响应正文中,我想以JSON格式返回字符串(我将控制器与RestyGWT一起使用,这要求响应必须为有效JSON格式)。 问题答案: 返回(例

  • 让我们看看下面这个简单的测试控制器(与Spring 4.0.3一起使用): 理论上,两个控制器方法都应该返回有效的JSON。调用第一个controller方法确实会返回以下JSON数组: 但第二个controller方法返回不带引号的字符串,该字符串不是有效的JSON字符串: 为什么会这样?可以配置吗?是虫子吗?还是一个我不懂的特征?