ruby-on-rails - 测试列表以正确的顺序排列在 capybara 中

标签 ruby-on-rails selenium rspec automated-tests capybara

我正在尝试在 capybara 中编写一些测试,以测试日期列表是否正确排序。例如,我有一个日期列表,即12月12日,星期三,12月13日,星期一,5月31日,星期四,当我单击按钮时,它将重新排列最早的日期,即:12月5日,星期四,12月27日,星期三12.2012年8月13日

capybara 有什么办法可以编写这样的测试。

通常,我会使用诸如page.find等方法,但是这些方法只会找到日期,而不告诉您日期是否已按照正确的顺序排序。

最佳答案

您需要使用:nth-child css选择器。

假设您的日期列表在ID为<ul>#dates中,则可以使用以下命令测试订单:

page.should have_selector("ul#dates li:nth-child(1)", content: @date1.content)
page.should have_selector("ul#dates li:nth-child(2)", content: @date2.content)

传递给have_selector()的第一个值是您的选择器,第二个值(在此示例中)是您期望的内容。例如,如果每个日期都链接到Date#show操作,则可以添加url: date_path(@date),则您不仅可以传递内容。

关于ruby-on-rails - 测试列表以正确的顺序排列在 capybara 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10724321/

相关文章:

ruby-on-rails - 'bundle'和 'bundle install' rails 3之间的区别?

sql - 使用 Active Record 和 Rails 有时为空的 ORDER BY 列

ruby-on-rails - mock、stub 和 factory girl 有什么区别?

java - 使用 Selenium webdriver 获取 <p> 内容 - Java

ruby-on-rails - ActiveSupport::Deprecation.silenced = true 对我不起作用?

ruby-on-rails - Rspec 测试搜索方法

mysql - 如何在rails中获得默认排序规则?

mysql - 用于从从属 MySQL 框读取的 ActiveRecord 配置

testing - 如何从 Selenium IDE 在 MS Excel 中运行测试用例?

ruby - 使用 Selenium 清除浏览器缓存