Seleniumでブラウザ操作

By | 2014年12月22日

nigaraです。

ブラウザを自動で動かしてデータ取得やテストを行う場合にSeleniumを使うと大抵の動作はプログラミングで可能となります。また、wgetやPerlのLWP等ではjavascriptでの遷移やPOST送信が出来ませんが、Seleniumならそれらも可能。

さらには仮想デスクトップでも動かせるので、X環境のないLinuxでもブラウザでの自動化処理が出来ます。

Selenium環境構築例(CentOS Python)
・Firefoxを仮想画面で動かす準備

・SeleniumをPythonで動作させる

あとはPythonでプログラムを書いて実行させるだけ。

で、そのPythonプログラムですが一から書くのは面倒なのでFireFoxのアドオンでSelenium IDEをインストールし、マウス操作を記録させれば簡単にコードが生成されます(VBAのマクロ自動記録の様なもの)。

・FireFoxアドオン
Selenium IDE
Selenium IDE Button
Selenium IDE:Python Formatters

スクリーンショット 2014-12-22 20.52.33

特定の言語として保存するには「ファイル」→「テストケースをエクスポート」で指定の言語のWebDriverで出力。
Pythonなら「Python 2 / unittest / WebDriver」となります。

・実行

ダウンロードも自動化が可能ですが、ブラウザを動かしているのと同じ挙動ですのでそのままだとポップアップが出てしまいそれ以上の操作が不可能となります。そこでダウンロードの場合はポップアップを出さないpreferenceを組み込めば回避出来ます。

・設定例

Seleniumはテストだけではなく、社外システムから自動でデータを取得したい場合にも便利。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です