Mechanizeで画像をクリックできなくて死んだ話。
Mechanizeで画像をクリックできなくて死んだ話。
結論から言うとMechanizeクローラを作っていたが、画像ボタンをクリックできずにしんだ。っていうだけの話なのですが、フラストレーションが溜まったので記事にします。
「応募者の中から毎月XXX名様にプレゼント」というサイトの応募フォームに毎月cronでアクセスして、自動で問い合わせをする、グレーなシステムを組んでいたのですが、
input要素を全部うめ、あとは「送信」のボタンを押すだけのところまで作ったのですが、その「送信」ボタンが
<img id="btn_confirm" src="" />
になっていて、jsをトリガーにしてフォームを送る形式になっていました。
Mechanizeでjsを動かすことはできないのはわかっていたのですが、
imgタグをクリックできないかで試行錯誤してみましたが、結局の所駄目でした。
img.clickだとか、aタグのクリックっぽいことをできないかだとか。。。
おそらくモンキーパッチを作るとしたらaタグのクリック部分にパッチを当ててimgタグでもできるようにする形かと思います。
結論としてはMechanizeじゃなくてjsを実行できる他のgemを使ってクローリングしろって話です。
私のおすすめはcapybaraですかね、test用のgemではありますが、私にとっては非常に使いやすく重宝しております。