Go言語 + Selenium + AgoutiでSOY CMSにログイン出来なかった時に適切にエラーを表示するかを確認してみる。
package main import ( "log" "strings" "github.com/sclevine/agouti" ) //SOY CMSにログインできなかた時に適切にエラーを表示するか?テスト func main() { driver := agouti.ChromeDriver() err := driver.Start() if err != nil { log.Fatal(err) } page, err := driver.NewPage(agouti.Browser("chrome")) err = page.Navigate("http://localhost/cms/admin/") if err != nil { log.Fatal(err) } //htmlソースコードをとってくる html, err := page.HTML() if err != nil { log.Fatal(err) } //ログインしてログインボタンを押す前にエラーメッセジーが出ていたらエラー n := strings.Index(html, "ログインに失敗しました。") if n > 0 { lot.Print("エラーメッセージがあります") } btn := page.FindByButton("ログイン") err = btn.Submit() if err != nil { log.Fatal(err) } //htmlソースコードをとってくる html, err = page.HTML() if err != nil { log.Fatal(err) } //ボタンを押したときにエラーメッセージが出ていなかったら、エラー n = strings.Index(html, "ログインに失敗しました。") if n < 0 { log.Print("エラーメッセージがありませんでした") } }
エラーメッセージに関する確認個所は2回ある。一つ目は、ログインフォームが表示されログインボタンを押す前に、エラーメッセージが表示されていないか?
もう一つは、ログインボタンを押した後、ログイン失敗時にエラーメッセージが表示されているか?
上記を実行すると、下記の画面が出てくる。今回は、IDとパスワードを入力せずに、ログインボタンを押したので、エラーメッセージが出るという正常動作で終わっている。
各メソッドは下記のページを参考にした