使用Capybara选择任何项目

Jos*_*sto 14 tdd ruby-on-rails capybara

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

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

gre*_*tes 17

假设<select>元素具有id"foo".然后以下应该工作.

option = first('#foo option').text
select option, from: 'foo'
Run Code Online (Sandbox Code Playgroud)


Gab*_*esy 16

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

all('#foo option')[2].select_option
Run Code Online (Sandbox Code Playgroud)

  • 我用样本来挑选随机选项.all('#foo option').sample.select_option (4认同)