我正在为我的 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/