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とパスワードを入力せずに、ログインボタンを押したので、エラーメッセージが出るという正常動作で終わっている。

saitodevwork


各メソッドは下記のページを参考にした

agouti - GoDoc