ruby - 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)
解决方案
看来您需要转义引号;您的水豚脚本示例中嵌套了 2 组双引号。
您可以尝试转义 tabImages 周围的引号:
script = "$('#skuTabNavigation a[href=\"#tabImages\"]').trigger('click')";
推荐阅读
- c++ - C++ 未知覆盖说明符
- javascript - setInterval() 不会在没有刷新 Angular 组件中的页面的情况下设置数据
- api - 可以选择使端点可缓存吗?
- python - Scipy 不支持错误。无法加载json文件
- linux - NASM x86_64:文件打开 (SYS_OPEN) 错误列表?
- php - PHP - 将对象输出映射到 HTML 表
- javascript - 显示骨架占位符,直到 Facebook 评论组件在 React (Next.js) 中完全加载
- python - 列表拆分为 2 个连续的列表 - 升序为 1
- python - 如何修复:cx_Oracle.DatabaseError: ORA-12578: TNS:wallet open failed
- amazon-s3 - 使用 C# 拒绝 AWS TransferUtiility 下载访问权限