Selenium - Web Browser Automation
Go言語でSeleniumとAgoutiを介してChromeブラウザを自動で操作してみる。
Seleniumは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のトップページが表示される。