使用Capybara选择任何项目

时间:2013-05-27 13:38:22

标签: ruby-on-rails tdd capybara

我正在尝试为我正在开发的一个小Rails应用程序编写测试。 Users模型与其他用户具有has_many through关系(两种方式),并且用户与assignments具有has_many关系。在UI结束时,用户可以选择另一个用户来附加新的作业。我想能够测试一下。现在的问题是,我无法弄清楚如何使用Capybara从我不知道文本的项目列表中进行选择。我写了一个rake任务来随机生成我的测试数据库,虽然我可以查看数据库并以这种方式编写我的测试,但它当然会打破第二次重置数据库。

我只测试测试数据库中的分配数量变化1.我正在使用Rspec和Capybara。

2 个答案:

答案 0 :(得分:17)

假设<select>元素的id为“foo”。然后以下内容应该有效。

option = first('#foo option').text
select option, from: 'foo'

答案 1 :(得分:16)

您可以找到选项元素,然后在其上调用select_option。例如,要在下拉列表中选择第三个元素:

all('#foo option')[2].select_option