【问题标题】:Selenium WebDriver executeScript not workingSelenium WebDriver executeScript 不起作用
【发布时间】:2012-04-22 22:42:57
【问题描述】:

我正在使用脚本将隐藏表单字段变量formContent 的值设置为值“Hello”。 Selenium Webdriver 不设置隐藏表单字段的值,因为它不可见。

这是我的代码:

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');");

谢谢!

【问题讨论】:

  • 了解您打算让脚本做什么会很有帮助
  • 我正在使用脚本将隐藏表单字段变量 formContent 的值设置为值“Hello”。 Selenium Webdriver 不设置隐藏表单字段的值,因为它不可见。
  • 请检查它是否适用于“警报”。

标签: selenium webdriver


【解决方案1】:

我认为这是 Firefox 网络驱动程序的错误。我在尝试返回 jQuery 对象时遇到了类似的情况,并在此处描述了这种行为:http://code.google.com/p/selenium/issues/detail?id=3756

尝试返回 jQuery obj 以外的其他内容,它应该会再次响应。例如,您可以返回执行代码的布尔值,只需在其前面加上 !!像这样:

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

【讨论】:

    猜你喜欢
    • 2018-01-22
    • 2018-09-30
    • 2018-12-30
    • 2014-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多