LoginSignup
0
0

More than 3 years have passed since last update.

【Go言語】AgoutiでGoogleChromeを自動で操作する

Posted at

事前準備

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()で撮影したスクリーンショットです。

Go言語公式HP.png
Go言語公式HP.png

Go言語Documents.png
Go言語Documents.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0