有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java向JavascriptExecutor传递参数的正确方法是什么?

我试图使用JavascriptExecutor作为我的代码,这涉及传递一个WebElement并从中获取一些信息。我得到了一些错误,所以我简化了它来找到问题

String test = ((JavascriptExecutor)driver).executeScript("return arguments[0];", "macon").toString();

那代码不会运行。它会抛出一个NullPointerException。我可以通过不尝试访问传递的变量来避免它。我经过什么似乎无关紧要;可以是int、string、WebElement

怎么了?我看不出在线示例和我的代码之间有任何差异,但显然有一些差异。我使用的是Firefox WebDriver,我的Selenium版本是2.44.0


共 (2) 个答案

  1. # 1 楼答案

    您只需将结果转换为^{

    JavaScriptExecutor js = (JavaScriptExecutor) driver;
    String test = (String) js.executeScript("return arguments[0];", "macon");
    

    此外,selenium 2.44和Firefox 35/36之间存在兼容性问题,影响了javascript代码的执行:

  2. # 2 楼答案

    请尝试以下代码:

    JavaScriptExecutor js = (JavaScriptExecutor) driver;
    
    String example=(String)js.executeScript('return $('table tbodt tr td:eq(0)')') .text();