如何确定单选按钮是否已被选中?
我正在使用带有黄瓜的 webrat,我想测试当我在页面上时是否已经选中了单选按钮。 我怎样才能做到这一点 ? 我在 webrat 中没有找到任何可以做到这一点的步骤。
I'm using webrat with cucumber and I would like to test if a radio button is checked already when I am on a page.
How can I do that ? I didn't find any step in webrat which can do that.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
您可以在您的字段上使用方法
checked?
You can use method
checked?
on your field虽然它可能是一个单选按钮,但代码可以工作。 它只是检查标有该文本的字段。
Although it might be a radio button, but the code will work. It is just checking for a fields labelled with that text.
包装了 Jesper Rønn-Jensen 他的函数 + 添加了 Rails 使用的名称:
Wrapped Jesper Rønn-Jensen his function + added name which is used by rails:
您可以使用 web_steps.rb 中的内置复选框匹配器:
但是,您的复选框上需要有一个与相应复选框输入字段的 ID 相匹配的标签。 Rails 中的 f.label 帮助器采用一个字符串作为第一个参数中的 ID。 您可能必须构建一个包含字段名称和复选框名称的字符串:
在任何情况下,请使用此指令来查看 HTML 是否正确:
You can use the built-in checkbox matcher in web_steps.rb:
However, you'll need to have a label on your checkbox that matches the ID of the corresponding checkbox input field. The f.label helper in Rails takes a string to use as the ID in the first argument. You may have to build a string that includes the field name and the checkbox name:
In any case, use this directive to see that you've got the HTML correct:
只需将 web_step 复选框更改为单选按钮
将以下步骤添加到 web_steps.rb
您可以编写以下内容来检查给定的 raido 按钮是否被选中
Just changed a web_step checkbox to radio button
Add the following step to web_steps.rb
And you can write the following to check whether the given raido button is checked or not
在某些情况下,您不能依赖具有 id 或标签的复选框,或者标签文本会发生变化。 在这种情况下,您可以使用 webrat 中的
have_selector
方法。从我的工作代码(我的复选框上没有 id)。
说明:如果文档正文包含已选中且值为“information”的单选按钮 (
input[type=radio]
),则测试将返回 trueThere are cases when you cannot rely on checkboxes having ids or labels or where label text changes. In this case you can use the
have_selector
method from webrat.From my working code (where I do not have ids on checkboxes).
Explanation: test will return true if body of document contains an radio button (
input[type=radio]
) which is checked and that has the value "information"