我正在尝试将JavascriptExecutor
用于我的代码,其中涉及传入WebElement
并从中获取一些信息。我收到了一些错误,所以我将其简化以找到问题。
String test = ((JavascriptExecutor)driver).executeScript("return arguments[0];", "macon").toString();
该代码无法运行。它会抛出一个NullPointerException
。我可以通过不尝试访问传递的变量来避免它。我通过的似乎并不重要;可以是int,string,WebElement
等等。
那有什么不对?我看不出在线示例和我的代码之间有任何差异,但显然有一些东西。我正在使用Firefox WebDriver,而我的Selenium版本是2.44.0
答案 0 :(得分:1)
您只需将结果转换为String
:
JavaScriptExecutor js = (JavaScriptExecutor) driver;
String test = (String) js.executeScript("return arguments[0];", "macon");
此外,selenium 2.44和Firefox 35/36之间存在兼容性问题,影响了javascript代码的执行:
答案 1 :(得分:-1)
试试这段代码:
JavaScriptExecutor js = (JavaScriptExecutor) driver;
String example=(String)js.executeScript('return $('table tbodt tr td:eq(0)')') .text();