Selenium

SeleniumでWebアプリの簡単な自動実行を試す。

Selenium IDEとSelenium WebDriverを本家サイトからダウンロード。書いている時点ではそれぞれのバージョンは2.9.0と2.46.0。

http://www.seleniumhq.org/download/

Selenium IDEはFirefoxのプラグインという記事を読んでいたのでFirefoxのアドオンページを探しに行ったけどそれらしいものがない。上記ページの下の方にxpiファイルがあるのでこれをダウンロードしてFirefoxにドロップすれば入る。

WebDriverはpython binding版を使う。Firefoxで動けばいいので他のブラウザ用のファイルは気にしない。

Selenium IDEは目的のサイトをGUIで操作すれば記録してくれるけど、Playbackは難しい。勝手にWaitを入れてくれないので試行錯誤する。基本はclickAndWaitとpauseで乗り切る。pauseの待ち時間パラメータは「対象」に入れるとかわからん。「値」に入れてもエラーにならず待ち時間0で進むので悩んだ。

これをpython向けにexportしたがWaitやpauseはexportされない。ググると仕様とのこと。いやいや、何のためのIDEやねん。とりあえずAndWait系はWebDriverWait(hogehoge,秒数).until(EC.element_to_be_clickable)に置き換える。単純なpauseはtime.sleep(秒数)に置き換える。

selectはselect_by_visible_textになっていたのをselect_by_valueに直す。

これでWindows PC上でpythonから自動実行できるようになった。

これを我が家のNASサーバで動かす。NASサーバ側もSelenium WebDriverを入れる必要がある。python bindingのインストール手順はpipが簡単とのことなのでNASにpython-pipを入れてseleniumを入れる。

sudo pip install -U selenium

PC側にcygwin/Xを入れて、ssh -YでNAS側にログインする。NAS側にFirefoxを入れて起動してみる。OK。次にWindows PCで作ったpythonをNASにコピーして実行する。何も改変せずともちゃんと自動実行できた。素晴らしい。




コメント

このブログの人気の投稿

ST-M310 シフトレバーのカバー開け

Ride with GPSで作成したルートのgpxファイルとOruxMapsの関係

UbuntuのpostfixでGmailにメールを転送する