私は正しいノードを見つけるためにクラスと要素の階層だけに依存できるサイトを削り取ろうとしています。しかしMechanize::Page#search
を使用するとNokogiri::XML::Element
が返ってきます。私はフォームなどを記入して送信することができません。Mechanize :: Pageの検索メソッドからMechanizeオブジェクトを取得するにはどうすればよいですか?
純粋なCSSセレクタを使用したいのですが、クラスのマッチングはさまざまな_with
メソッドでも簡単です。しかし、:not(.class)
のような一致するものはCSSセレクタを使用するのと比べてかなり冗長ですが、要素の階層をどのように一致させるかはわかりません。
Nokogiriの要素をMechanizeオブジェクトに変換する方法はありますか、それともsearch
メソッドから直接取得する方が良いでしょうか?
Mechanizeで特定できないフォームフィールドの例がありますか? –
@mark該当するページのすべてのフォームとフォームフィールドには、IDと名前がランダムに生成されます。あなたがいつもsthを行うことができるので、あなたが特定できない要素はもちろんありません。 'page.forms [3]'のようなものです。しかし、 'page.search '.main-content form''でそのフォームを取得することは、より意味のあるIMHOであり、おそらくサイト上の何かが変わったときに壊れにくいでしょう。 – raphinesse
私はあなたの回答を[この古い回答](http://stackoverflow.com/questions/2469117/nokogiri-error-undefined-method-radiobutton-with-why/6003166#comment11504418_6003166)で見つけることができると信じています。 – Phrogz