黄瓜规格测试失败 Rails 应用程序

问题描述 投票:0回答:1

在 Rails 5 应用程序中执行 Cucumber 规范时出现以下错误

  ReferenceError: jQuery is not defined (Selenium::WebDriver::Error::JavascriptError)
  @http://127.0.0.1:4000/:2:7
  @http://127.0.0.1:4000/:3:8
  ./features/support/lib/common_actions.rb:112:in `finished_all_ajax_requests?'
  ./features/support/lib/common_actions.rb:106:in `block in wait_for_ajax'
  ./features/support/lib/common_actions.rb:105:in `wait_for_ajax'

添加了 default_max_wait_time 为 5 秒。 以下版本适用于 capybra 和 selenium 驱动程序 水豚 (3.2.1) 硒网络驱动程序 (3.14)

selenium-webdriver cucumber capybara
1个回答
0
投票

您在 features/support/lib/common_actions.rb 中有您自己的(或从某处复制的)代码,该代码正在页面中执行 JS,以尝试查看所有 ajax 请求何时完成(根据方法名称假设)。此代码可能会访问

jQuery.active
并检查它是否为零。这从来都不是一个好主意,相反,页面同步应该通过检查页面中实际更改的内容来处理。

鉴于现在已经是 2023 年了,我猜您可能已经从应用程序中删除了 jQuery 的使用(使用

fetch
、现代 JS 功能等),因此您应该更新同步以不需要
wait_for_ajax
之类的东西。如果您还没有删除 jQuery,那么某些 JS 中会出现错误,导致 jQuery 无法加载。检查您的浏览器控制台并修复抛出的任何 JS 错误。

© www.soinside.com 2019 - 2024. All rights reserved.