Selenium - Web Browser Automation


https://agouti.org/


Go言語でSeleniumとAgoutiを介してChromeブラウザを自動で操作してみる。


SeleniumはJava上でなければ動作しないため、はじめにJavaをインストールする。

Javaは下記のページからダウンロードして、画面の指示に従ってインストールする。

無料Javaソフトウェアをダウンロード


続いて、seleniumu-serverをhttps://www.seleniumhq.org/のページからダウンロードする。



SeleniumのJarファイルをダウンロード出来たら、

Cドライブ上の適当な位置にコピーして、Jarファイルのショートカットをデスクトップ上に配置しておく。

デスクトップ上に配置したSeleniumのショートカットをクリックして、Seleniumサーバを立ち上げる。


クリック後にブラウザを開き、localhost:4444にアクセスし、



Seleniumのページが表示されることを確認する。


続いて、Chromeドライバをインストールする。

下記ページからWindows用のChromeドライバをダウンロードしてくる。

Downloads - ChromeDriver - WebDriver for Chrome


最新版のページにあるchromedriver_win32.zipをダウンロードし、

zipファイルを解凍した後、

Cドライブ直下にchromedriverフォルダを作成し、

そのフォルダに取得したchromedriver.exeを配置する。



画面左下にあるコルタナの検索フォームで「環境変数」を入力し、

環境変数の編集を開く。


環境変数の編集の画面にあるユーザー環境変数のPathの編集を開き、

C:¥chromedriver¥を登録し、Chromeドライバのパスを通しておく。

これで、後に記載されるAgoutiでChromeを開けるようになる。


MINGW64(Git Bash)を立ち上げ、下記のコマンドを入力する。

$ go get github.com/selevine/agouti

この操作でgithubからSeleniumを操作するためのAgoutiパッケージを取得する。


次にAtomでworkspace/go/selenium/selenium.goを作成する。

下記コードを入力する。

package main

import (
	"log"

	"github.com/sclevine/agouti"
)

func main() {
	driver := agouti.ChromeDriver()
	err := driver.Start()
	if err != nil {
		log.Fatal(err)
	}

	// defer driver.Stop() // Chromeを閉じる 今回はChromeを開いてGoogleのページが表示されるところで止めたいからコメントアウトしておく

	page, err := driver.NewPage(agouti.Browser("chrome"))
	err = page.Navigate("https://google.com")
	if err != nil {
		log.Fatal(err)
	}
}

driver := agouti.ChromeDriver()でdriverを起動する。err := driver.Start()でChromeを起動する。
自身のパソコン内にChromeドライバがなければ、errが返ってくる。
driver.NewPage(agouti.Browser("chrome"))で何もデータを受け取ってないページを1つ用意する。
err = page.Navigate("https://google.com")でhttps://google.comのデータを受取りページに表示する。

このコードを実行するとChromeが立ち上がり、Googleのトップページが表示される。