[英]What is the correct way to pass arguments to the JavascriptExecutor?
我正在尝试将JavascriptExecutor
用于我的代码,这涉及传递WebElement
并从中获取一些信息。 我遇到了一些错误,因此我简化了下来以查找问题。
String test = ((JavascriptExecutor)driver).executeScript("return arguments[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");
另外,硒2.44和Firefox 35/36之间存在兼容性问题,影响了JavaScript代码的执行:
试试这个代码:
JavaScriptExecutor js = (JavaScriptExecutor) driver;
String example=(String)js.executeScript('return $('table tbodt tr td:eq(0)')') .text();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.