Capybaraとchromedriverを使ってテストをしたらcheckboxの要素が探せなかった

· 37 words · 1 minute read

Capybaraを使ってテストを書いているときに、system specでjs: trueにしたところ、checkboxをcheck/uncheckできなくて困りました。

RSpec.describe 'hogehoge', type: :system, js: true do
  ...

  check 'ほげほげ' # ElementNotFoundになってしまう

  ...
end

Selenium上でchromedriverを使ったテストでは、Capybaraの「check」を使ってラベルのテキストで要素を探すことはできないようです。

これを避けるためにCapybaraのfindとclickを使います。

find('label', text: 'ほげほげ', match: :first).click