水豚找不到表单元素

2023-12-01

这是我第一次尝试 Capybara,我似乎不明白为什么它找不到我的表单元素。

每次我尝试寻找表单元素时,

When /^they submit a resolution in Markdown$/ do
  visit "/resolutions/new"
  fill_in "title", :with => "Title"
  fill_in "libelle", :with => "Some text here\n\nNew paragraph"
  click_button "Submit"
end

它不知道它在哪里,

Scenario: Submission of a resolution                 # features/resolutions.feature:5
    Given the user is a member                       # features/step_definitions/user_steps.rb:26
    When they submit a resolution in Markdown        # features/step_definitions/resolution_steps.rb:8
      cannot fill in, no text field, text area or password field with id, name, or label 'title' found (Capybara::ElementNotFound)
      (eval):2:in `fill_in'
      ./features/step_definitions/resolution_steps.rb:10:in `/^they submit a resolution in Markdown$/'
      features/resolutions.feature:7:in `When they submit a resolution in Markdown'

即使它出现在页面上

<%= form_for(@resolution) do |f| %>
  <div class="field">
    <%= f.label :title %><br />
    <%= f.text_field :title %>
  </div>
  <div class="field">
    <%= f.label :libelle %><br />
    <%= f.text_area :libelle %>
  </div>
  <div class="actions">
    <%= f.submit "Submit" %>
  </div>
<% end %>

它似乎已正确渲染。

Started GET "/resolutions/new" for 127.0.0.1 at 2012-07-06 00:47:24 -0400
  [1m[36m (0.0ms)[0m  [1mSAVEPOINT active_record_1[0m
  [1m[35m (0.2ms)[0m  UPDATE "users" SET "last_sign_in_at" = '2012-07-06 04:47:24.980196', "current_sign_in_at" = '2012-07-06 04:47:24.980196', "last_sign_in_ip" = '127.0.0.1', "current_sign_in_ip" = '127.0.0.1', "sign_in_count" = 1, "updated_at" = '2012-07-06 04:47:24.980658' WHERE "users"."email" = '[email protected]'
  [1m[36m (0.0ms)[0m  [1mRELEASE SAVEPOINT active_record_1[0m
Processing by ResolutionsController#new as HTML
  Rendered resolutions/_form.html.erb (3.8ms)
  Rendered resolutions/new.html.erb within layouts/application (4.9ms)
Completed 200 OK in 18ms (Views: 7.9ms | ActiveRecord: 0.2ms)
  [1m[35m (0.2ms)[0m  rollback transaction
  [1m[36m (0.0ms)[0m  [1mbegin transaction[0m
  [1m[35m (0.0ms)[0m  SAVEPOINT active_record_1
  [1m[36mUser Exists (0.1ms)[0m  [1mSELECT 1 FROM "users" WHERE "users"."email" = '[email protected]' LIMIT 1[0m
  [1m[35mSQL (0.3ms)[0m  INSERT INTO "users" ("authentication_token", "clearance", "confirmation_sent_at", "confirmation_token", "confirmed_at", "created_at", "current_sign_in_at", "current_sign_in_ip", "email", "facebook_uid", "id", "last_sign_in_at", "last_sign_in_ip", "name", "parent", "remember_created_at", "sign_in_count", "unconfirmed_email", "updated_at") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)  [["authentication_token", nil], ["clearance", 9], ["confirmation_sent_at", nil], ["confirmation_token", nil], ["confirmed_at", nil], ["created_at", Fri, 06 Jul 2012 04:47:25 UTC +00:00], ["current_sign_in_at", nil], ["current_sign_in_ip", nil], ["email", "[email protected]"], ["facebook_uid", nil], ["id", nil], ["last_sign_in_at", nil], ["last_sign_in_ip", nil], ["name", "Normand Portequi"], ["parent", nil], ["remember_created_at", nil], ["sign_in_count", 0], ["unconfirmed_email", nil], ["updated_at", Fri, 06 Jul 2012 04:47:25 UTC +00:00]]
  [1m[36m (0.0ms)[0m  [1mRELEASE SAVEPOINT active_record_1[0m

这似乎是显而易见的事情,但我找不到它。我发现了这个问题,但答案毫无用处。即使在审查之后Devise+Cucumber 示例应用程序,我找不到问题所在。

这正在扼杀我和我的测试。有任何想法吗?


尝试添加puts page.body after visit "/resolutions/new"看看你的堆栈跟踪告诉你什么。您将能够看到表单字段的 ID。例如,虽然我的一列名为“name”,但渲染的 html 中的 id 是“user_name”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

水豚找不到表单元素 的相关文章

随机推荐

  • 整数数组中具有最大总和的子序列[重复]

    这个问题在这里已经有答案了 给定一个整数数组 如何找到两个索引 i 和 j 使得子数组中从索引开始和结束的元素之和最大化 在线性时间内 简单的 假设你得到了数组a 首先 计算数组s where s i a 0 a 1 a i 您可以在线性时
  • 添加按钮到 QVideoWidget

    每个人 我尝试为 QMediaPlayer 元素设置点击属性 但我找不到制作它的模式 如果我尝试将按钮放在视频前面 该按钮会放在视频后面 即使使用 button gt raise videoWidget gt lower 如果我按下按钮全屏
  • 如何在没有 2^n if 语句的情况下启动具有许多布尔参数的函数模板

    我有一个 CUDA C 代码 专门出于性能原因而使用函数模板 这样该函数将只执行它需要执行的操作 而不是不断加载和读取布尔值来检查它是否需要执行操作 所有模板参数都是布尔值 在启动内核时 CPU 检查布尔值并启动适当的 我相信这称为内核模板
  • SQL Server 插入缺失行

    我有下表记录每天的值 问题是有时会缺少几天 我想编写一个 SQL 查询来 归还缺失的日子 使用线性插值计算缺失值 所以从下面的源表中可以看出 Date Value 2010 01 10 10 2010 01 11 15 2010 01 13
  • 将 C# 中的 CPU ID 代码转换为 C++ 中的 CPU ID 代码

    我有这个 C 代码来获取处理器 ID 但我无法将其传递给 C 我尝试了很多 但我真的不能 我刚刚开始使用 C 我希望能够通过以下方式获取 CPU ID C 就像我以前使用 C 一样 这是我在 C 中的代码 public static str
  • 嵌套列表理解以展平嵌套列表

    我对 Python 很陌生 想知道如何使用列表理解来展平以下嵌套列表 并使用条件逻辑 nested list 1 2 3 4 5 6 7 8 9 以下返回一个嵌套列表 但是当我尝试通过删除内部方括号来展平列表时 出现错误 odds even
  • Django 1.7 - makemigrations 未检测到更改

    正如标题所示 我似乎无法进行迁移 该应用程序最初低于 1 6 所以我知道迁移最初不会存在 事实上 如果我运行python manage py migrate I get Operations to perform Synchronize u
  • 如何从 Firefox 扩展程序访问网页数据?

    我已经成功地在 Firefox 中运行了一个自定义的非常基本的扩展 接下来我想做的是 检查用户是否位于所需的网页上 如果是 检查每个回发的页面是否包含包含string 如果找到 启动外部应用程序string范围 我对网页上的 javascr
  • pandas to_sql 方法给出日期列错误

    我有一个如下所示的数据框 df pd DataFrame index pd date range 2014 01 01 periods 10 df date df index map lambda x x strftime d m Y df
  • 预期为“struct Matrix_t *”,但参数类型为“struct Matrix_t *”?_?没有不同

    main c 78 25 erreur assignment from incompatible pointer type Werror main c 81 9 erreur passing argument 2 of matrix mul
  • .Net Socket 不响应远程断开连接?

    我正在编写一个小型 C 客户端应用程序 该应用程序使用 TCP IP 连接将数据发送到远程服务器 我正在使用标准 Net TcpClient 对象 并且希望在客户端保持连接打开状态 因为我定期向服务器提交数据包 但是 服务器可能会关闭连接
  • 数据源上的 save() 方法不会触发 querySave/postSave 事件

    我的保存按钮使用 SSJS 和一些逻辑 我想保存数据源 所以我使用 document1 save 脚本有效 但 querySave postSave 代码未执行 唯一的解决方法是使用简单操作并将按钮事件划分为 执行脚本 保存文档 简单操作
  • 存储过程不存在,是吗?

    我遇到一个问题 我有一个数据库连接 我在其中运行存储过程 这个相同的连接用于创建前面所说的存储过程 当我稍后尝试调用给定的存储过程时 我收到以下消息 找不到存储过程 dbo yaf prov upgrade 问题是它确实存在于数据库中 而且
  • 如何以管理员权限启动 Windows 服务

    我有自己的应用程序服务器 它是与 sql 服务器通信的 Windows 服务 在某些情况下 sql 服务器服务停止 所以我通过这段代码声明 ServiceController sc new ServiceController MSSQL S
  • C 代码的 x86 反汇编生成:orq $0x0, %(rsp)

    I have written the following C code 它只是分配一个包含 1000000 个整数和另一个整数的数组 并将数组的第一个整数设置为 0 我编译这个使用gcc g test c o test fno stack
  • 使用自定义 [required] 属性时使用客户端验证

    在这个项目中 我们不使用默认的数据注释属性System ComponentModel DataAnnotations命名空间 但构建了自定义属性 所以我们确实放置了一个 required 属性上的属性 但它是自定义构建的 对于服务器端验证
  • 在 WKWebView 中操作粘贴内容

    我需要操作粘贴到 WKWebView 从任何源 中的文本 运行可能需要一些时间的异步操作 我最初的想法是使用 Javascript 和 WKWebView 配置来获取onpaste event WKUserContentController
  • 此平台不支持 .whl

    我想安装hdbcli 2 3 99 cp27 cp27m win amd64 whl我已保存到本地驱动器 我正在使用下一个 PS C Users i326707 PycharmProjects hdbcli gt python Python
  • C++:为什么 cout 打印回车符以及使用 ifstream 从文件读取的字符串?

    我正在尝试读取文件capitals内容如下 Tokyo 33200000 New York 17800000 Sao Paulo 17700000 Seoul 17500000 Mexico City 17400000 我用来打印文件内容的
  • 水豚找不到表单元素

    这是我第一次尝试 Capybara 我似乎不明白为什么它找不到我的表单元素 每次我尝试寻找表单元素时 When they submit a resolution in Markdown do visit resolutions new fi