
display: none
になっている要素をWebDriverで取得しようとすると
Capybara::ElementNotFound: Unable to find visible xpath
と怒られた。
Capybara::ElementNotFound: Unable to find visible xpath
まぁ、そうですよね。ということで調べてみると、 Capybara: Unable to find css に回答発見。
処理のはじめに Capybara.ignore_hidden_elements = false
を入れるだけで要素にアクセスできるよになった。
これでいいのか感はあるが、JSで無理くり動かすよりはよさそう。
注意点は、 element.text
とかにアクセスしたときに、これまで取得できなかった情報までとってくるようになるので、表示される文字列チェックが落ちまくった。
たとえば、あるメッセージの改行を半角空白として取ってきたりする感じ。気をつけてつかわなきゃ。