ruby-on-rails - 带有 Capybara 的 Rspec 找不到链接或任何元素

标签 ruby-on-rails testing rspec ruby-on-rails-5 capybara

我正在为我的 Rails 5 应用程序编写功能测试。一项功能是能够使用 POST 方法单击链接。

visit "/admin/client_servers/#{client_server.id}"
click_on('Request Review From Application Owner')

我收到错误消息“Capybara::ElementNotFound:无法找到链接或按钮‘请求应用程序所有者审核’”

只是试验,我检查测试是否可以找到屏幕上我知道的任何元素。我有一个带有“描述”类的容器 div,但测试无法找到该元素。

前面的测试通过

  visit "/admin/client_servers/#{client_server.id}"
  expect(page).to have_text("Request Review From Application Owner")

所以我知道我要点击的文字出现在页面上。 我的 html 已设置:

<div class="mark-ready-btn server-button" id="overall-tab" data-param="overall">
    <%=link_to admin_client_servers_update_review_status_path(status: 1, id: @server.id), class: "request-review-btn", method: 'POST' do%>
      <div class="server-mark-ready" id="overall-tab" data-param="overall">
        Request Review From Application Owner
      </div>
    <%end%>
</div>

我已经检查过,但测试无法找到 css 标签“.mark-ready-btn server-button”、“.request-review-btn”或“.server-mark-ready”。我在网上搜索了这个问题并查看了 Capybara 和 Rspec 文档。是否有我遗漏的东西或我在测试中编写的语法不正确?如果您能就此问题提供任何帮助,我将不胜感激。

最佳答案

你可以试试——

within ".mark-ready-btn.server-button" do
  click_on ".server-mark-ready"
end

或者你可以使用“查找”

find('.server-mark-ready').click

关于ruby-on-rails - 带有 Capybara 的 Rspec 找不到链接或任何元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54219941/

相关文章:

ruby-on-rails - 在 RSpec 中,mock 和 double 之间有什么区别?

ruby-on-rails - Rails - 具有自定义框架的 Multi-Tenancy 应用程序

mysql - 在sql中计算datediff

unit-testing - 事后单元测试的优缺点

java - 小服务程序测试

php - 在 Codeception 测试中循环访问页面上的链接

ruby-on-rails - Rails 新帖子通知

ruby-on-rails - 事件记录查询错误

ruby - 安全导航运算符的使用是否应该在两种场景(对象存在 + 对象为零)下进行单元测试?

ruby-on-rails - 如何在JBuilder中使用RSpec?