[Firefox]Selenium IDEでループを使う


twitter APIを使って投稿を行うwebサイトを作ろうとした際に、投稿テストのために毎回手動で投稿するのが手間だったので、

Selenium IDEを使ってブラウザから自動投稿するようにしてみました。

Seleniumはデフォルトだとループは使えませんが、「SelBlocks」プラグインをインストールすることで、forやforeach, whileが使えるようになります。

  • まずはFirefoxを開いて、Selenium IDEをインストール

  • 続いて「SelBlocks」をインストール

  • ブラウザ再起動後、「ツール」メニューに「Selenium IDE」が追加されているので起動

  • 録画モードにして通常のつぶやき投稿をやってみる

  • Seleniumの画面に上記の動きのコマンドが表示される

selenium1

  • 「コマンドを挿入」で繰り返したい処理の前にfor文を記述
コマンド:for
対象:i=1; i <= 100; i++
値:i

また、繰り返したい処理の最後にendForを記述

コマンド:endFor

twitterの場合、同じ文言を連続して投稿することができないので、ツイートの文言にループ変数を追加するようにしました。

変数は ${i} で使えます。

selenium2

ループが使えないとループ回数分コードをコピーして使う必要があるので大変でしたが、SelBlocksを使うことで、コードがシンプルになって助かりました。

なお、Twitter公式サイトでSeleniumを使った投稿を試す場合はajaxが使われているので、もっと細かい制御が必要そうでした。

参考