0

有以下生成的 HTML 代码:

    <label for="place_type_id">Type</label><br />
    <select id="place_type_id" name="place[type_id]"><option value="1">Restaurant</option>
<option value="2">Cafe</option>
<option value="3">Club</option></select>

我需要为我的 RSpec 测试选择一些选项:

  select "Club", from: "place[type_id]"

但它不起作用。我该如何解决?我尝试在'from'参数中使用'id'而不是'name',但它也不起作用。

4

1 回答 1

0

看起来可以通过名称、ID 或标签文本找到选择框,因此您的示例看起来应该可以工作。来自Capybara::Node::Actions

在页面上找到一个选择框并从中选择一个特定选项。如果选择框是多选,可以多次调用select来选择多个选项。可以通过其名称、ID 或标签文本找到选择框。

我们显然忽略了一些东西。也许方括号会甩掉水豚?查看通过标签文本选择时会发生什么。

select 'Club', from: 'Type'

或身份证:

select 'Club', from: :place_type_id
于 2013-10-07T12:18:24.287 回答