我正在尝试为我正在开发的一个小Rails应用程序编写测试。 Users模型与其他用户具有has_many through关系(两种方式),并且用户与assignments具有has_many关系。在UI结束时,用户可以选择另一个用户来附加新的作业。我想能够测试一下。现在的问题是,我无法弄清楚如何使用Capybara从我不知道文本的项目列表中进行选择。我写了一个rake任务来随机生成我的测试数据库,虽然我可以查看数据库并以这种方式编写我的测试,但它当然会打破第二次重置数据库。
我只测试测试数据库中的分配数量变化1.我正在使用Rspec和Capybara。
答案 0 :(得分:17)
假设<select>
元素的id为“foo”。然后以下内容应该有效。
option = first('#foo option').text
select option, from: 'foo'
答案 1 :(得分:16)
您可以找到选项元素,然后在其上调用select_option
。例如,要在下拉列表中选择第三个元素:
all('#foo option')[2].select_option