ウェブサービスで、会員登録やらパスワード再設定やらで確認用メールを飛ばして一時URLをクリックして処理が完了する機能って、よくありますよね?
その機能を自動テストしたいとき、どうやってますか?
実はSeleniumとGmailの「簡易HTMLモード」を使えば簡単にできるんです。
- Gmailでテスト用のアカウントを作っておく(例: example@gmail.com)
- Seleniumで、当該ウェブサービスに会員登録する
- Gmailに会員登録の一時URLが入ったメールが送られてくる
- Seleniumで、Gmailを開いてその一時URLをクリックする
GmailはAjaxサイトなので、自動操作するのは一見難しそうですが、下記のようにすればできます。
Gmailを自動操作する方法
まず、Gmailにログインする直前にログアウト用URLを叩いておきます。
コマンド | 対象 | 値 |
---|---|---|
open | http://mail.google.com/mail/?logout&hl=ja |
こうすれば、必ずログインフォームが現れてくれます。
次に、Seleniumで普通に自動ログインします。
コマンド | 対象 | 値 |
---|---|---|
type | example@gmail.com | |
type | Passwd | himitsu |
clickAndWait | singIn |
そしてここがミソですが、強制的に「簡易HTMLモード」にしてやります。
コマンド | 対象 | 値 |
---|---|---|
open | http://mail.google.com/mail/?ui=html&zy=e |
これで、もうあとは思いのままにGmailを操作することができます。
Happy Testing!