繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM