首页 > 解决方案 > Ruby / Capybara - 如何在 Capybara 中使用 JQuery 命令

问题描述

我的 Chrome 控制台中有以下 JQuery 脚本。但是,当我在 Capybara 测试中使用它时,它不起作用。我究竟做错了什么?

在我的控制台中工作的脚本

$('#skuTabNavigation a[href="#tabImages"]').trigger('click');

我的 Capybara 测试中的脚本。不工作

script = '$("#skuTabNavigation a[href="#tabImages"]").trigger("click")';
page.execute_script(script)

终端 MAC 错误 失败/错误:page.execute_script(script)

 Selenium::WebDriver::Error::UnknownError:
   unknown error: Runtime.evaluate threw exception: SyntaxError: missing ) after argument list
     (Session info: headless chrome=73.0.3683.75)
     (Driver info: chromedriver=2.46.628411 (3324f4c8be9ff2f70a05a30ebc72ffb013e1a71e),platform=Mac OS X 10.12.6 x86_64)

标签: rubyautomated-testscapybara

解决方案


看来您需要转义引号;您的水豚脚本示例中嵌套了 2 组双引号。

您可以尝试转义 tabImages 周围的引号:

script = "$('#skuTabNavigation a[href=\"#tabImages\"]').trigger('click')";

推荐阅读