在主页我有:
汽车:
汽车:
<select id="cars"> <option value="volvo">Volvo </option> <option value="saab">Saab</option> <option value="mercedes">Mercedes</option> <option value="audi">Audi </option> </select>
static_pages_spec.rb中的测试代码:
it "should have the right select" do visit home_path it { should have_select('cars',:options => ['volvo','saab','mercedes','audi'])} end
回应是
rspec ./spec/requests/static_pages_spec.rb:21 # Static pages Home page should have the right select
解决方法
正如你在
this question中看到的那样,大多数试图解决类似问题的人都会使用#cars来定位他们的选择,但
capybara docs for
has_select?
会说它(像往常一样)会找到正确的标签,名称或ID.看一下这里的例子,我建议你尝试使用可见(大写)选项名称而不是内部选项值.
在我链接的问题中的第三个答案有一个验证内部值的例子(使用完全相同的选项,这似乎是巧合的一个非常难的:-).
所以你可以试试
it { should have_select('#cars',:options => ['Volvo','Saab','Mercedes','Audi'])}