#事前準備
##Agoutiのインストール
以下のコマンドでAgoutiをインストールします。
$ go get github.com/sclevine/agouti
##Chrome Driverをインストール
続いて自動で操作したブラウザに対応したWebDriverをインストールします。
今回はGoogleChromeを操作したいので、以下のコマンドでGoogleChromeのWebDriver(chromedriver)をインストールします。
$ brew install chromedriver
GoogleChromeのバージョンによって上手くいかない場合はChromeのバージョンを確認し、以下のサイトよりDriverをダウンロードしてください。
#自動操作
事前準備が完了したら、ブラウザを自動操作するコードを書いていきます。
今回は、
Go言語の公式ページを開き、Documentsまでの遷移する動きを自動化してみます。
以下、自動操作のためのコードです。
それぞれのコードの意味はコメントアウトで記述しています。
main.go
package main
import (
"log"
"github.com/sclevine/agouti"
)
func main() {
//ChromeDriverを使用するための記述
driver := agouti.ChromeDriver()
//WebDriverプロセスを開始する
err := driver.Start()
if err != nil {
log.Fatal(err)
}
//WebDriverプロセスを停止する(main関数の最後で停止したいのでdeferで処理)
defer driver.Stop()
if err != nil {
log.Fatal(err)
}
//NewPage()でDriverに対応したページを返す。(今回はChrome)
page, err := driver.NewPage()
//Navigate()の引数にURLを渡し、ページの遷移を行う
err = page.Navigate("https://golang.org/")
//Screenshot()で開いているページのスクリーンショットを撮る。保存名は引数で指定。(保存場所も相対パスor絶対パスで指定可能)
page.Screenshot("Go言語公式HP.png")
if err != nil {
log.Fatal(err)
}
//FindByLink() で引数に指定したaタグのテキストを検索し、Click()でクリックする
page.FindByLink("Documents").Click()
//上記のScreenshot()と同様の動き
page.Screenshot("Go言語Documents.png")
}
以下、page.Screenshot()で撮影したスクリーンショットです。