让Poltergeist不区分大小写

时间:2015-12-15 15:32:09

标签: ruby-on-rails cucumber capybara poltergeist

我正在使用Poltergeist / Capybara进行测试:

Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, {
      timeout: 60,
      phantomjs_options: ['--load-images=no'],
      case_insensitive: true # <-- doesn't work
    })
  end
end

但是我注意到我必须重写很多测试,因为Poltergeists的驱动程序似乎是case-sensitive。有什么我可以通过改变这个吗?

3 个答案:

答案 0 :(得分:3)

正如@eugen所提到的,默认情况下,水豚中的所有搜索都区分大小写。你提到必须重写测试的问题通常发生在从支持css文本转换的驱动程序转移到不支持css文本转换的驱动程序时,所以匹配的文本是否具有css文本 - 应用了transform(uppercase / lowercase / capitalize / ...)。如果您希望能够在驱动程序之间来回切换并且确实需要不区分大小写,则可以将正则表达式传递给不同的匹配器

expect(page).to have_text(/case insensitive text/i)
expect(page).to have_selector(:css, '#div1', text: /case insensitive text/i)

答案 1 :(得分:1)

比较字符串

时可以使用正则表达式
expect(page.body).to match(%r{#{string}}i)

来源:Case insensitive Rspec match

答案 2 :(得分:1)

capybara中的所有搜索都区分大小写,没有全局选项可以更改它。如果您需要进行不区分大小写的匹配,则必须在搜索搜索的基础上进行匹配。