Capybaraで特定DOMのHTMLを取得する

バージョン情報

  • gem capybara (3.33.0)

本題

find('.test-class')['innerHTML']

でできるよ。


Capybaraでfindした要素のHTMLを取得したかった。
まず、findの返り値が何のクラスか見てみたところ、Capybara::Node::Elementというクラスだということが分かった。
このドキュメントを参照して、それっぽいメソッドがないか見てみた。
見てみたんだけど、無さそうだよね、一見。なので調べたら、次のqiitaが出てきた。
https://qiita.com/maangie/items/4522fb16a0fd78fd150e

この情報が古いのか、やってみてもまったくhtmlを取得できないんだよね。
で、ドキュメントに戻る。

#[](attribute) ⇒ String
Retrieve the given attribute.

はぁはぁ、なるほど。このattributeがhtmlのattributeのことを指しているのだとしたら、['innerHTML']でいけるはずだなと。
ちょっと次の用に試してみた。

find('.test-class')['innerHTML']

いけました!

タイトルとURLをコピーしました