[Firefox]Selenium IDEでループを使う
twitter APIを使って投稿を行うwebサイトを作ろうとした際に、投稿テストのために毎回手動で投稿するのが手間だったので、 Selenium IDEを使ってブラウザから自動投稿するようにしてみました。
Seleniumはデフォルトだとループは使えませんが、「SelBlocks」プラグインをインストールすることで、forやforeach, whileが使えるようになります。
まずはFirefoxを開いて、 Selenium IDEをインストール
続いて「 SelBlocks」をインストール
ブラウザ再起動後、「ツール」メニューに「Selenium IDE」が追加されているので起動
録画モードにして通常のつぶやき投稿をやってみる
Seleniumの画面に上記の動きのコマンドが表示される
- 「コマンドを挿入」で繰り返したい処理の前にfor文を記述
コマンド:for
対象:i=1; i <= 100; i++
値:i
また、繰り返したい処理の最後にendForを記述
コマンド:endFor
twitterの場合、同じ文言を連続して投稿することができないので、ツイートの文言にループ変数を追加するようにしました。
変数は ${i} で使えます。
ループが使えないとループ回数分コードをコピーして使う必要があるので大変でしたが、SelBlocksを使うことで、コードがシンプルになって助かりました。
なお、Twitter公式サイトでSeleniumを使った投稿を試す場合はajaxが使われているので、もっと細かい制御が必要そうでした。