2012-04-10 130 views
1

我正在使用该脚本将隐藏表单字段变量formContent的值设置为值'Hello'。 Selenium Webdriver不会设置隐藏表单字段的值,因为它不可见。Selenium WebDriver executeScript不起作用

这里是我的代码:

JavascriptExecutor js = (JavascriptExecutor) driver; 
js.executeScript("return jQuery('input:hidden[id$=\"formContent\"]').val('Hello');"); 

我收到剧本没有响应。你能否告诉我我在这里做错了什么。该formContent在我的XHTML定义如下:

<input type="hidden" id="formContent" name="formContent" value="" /> 

如果使用下面的代码行,那么它是不是设置的隐藏的表单字段“formContent”的值:

JavascriptExecutor js = (JavascriptExecutor) driver; 
js.executeScript("jQuery('input:hidden[id$=\"formContent\"]').val('Hello');"); 

谢谢!

+0

这将有助于了解你打算什么脚本做 – prestomanifesto 2012-04-10 16:25:46

+0

我使用的脚本来设置隐藏的表单字段变量formContent的值“你好”的价值。 Selenium Webdriver不会设置隐藏表单字段的值,因为它不可见。 – Sri 2012-04-10 16:52:48

+0

请检查它是否适用于'提醒'。 – 2012-04-10 17:33:45

回答

1

我相信这是Firefox webdriver的一个bug。尝试返回jQuery对象时遇到过类似的情况,并描述了此处的行为:http://code.google.com/p/selenium/issues/detail?id=3756

尝试返回除jQuery obj以外的内容,并且它应该再次变为响应。例如,你可以通过给它加上前缀来返回你的执行代码的布尔值!像这样:

js.executeScript("return !!jQuery('input:hidden[id$=\"formContent\"]').val('Hello');");