前回の続きで、seleniumでグーグル検索した後、検索フォームにseleniumuと入力してボタンを押してみる。

下記のコードを入力する。

package main

import (
	"log"

	"github.com/sclevine/agouti"
)

func main() {
	driver := agouti.ChromeDriver()
	err := driver.Start()
	if err != nil {
		log.Fatal(err)
	}
	page, err := driver.NewPage(agouti.Browser("chrome"))
	err = page.Navigate("https://google.com")
	if err != nil {
		log.Fatal(err)
	}
	searchform := page.FindByID("lst-ib")
	err = searchform.Fill("selenium")
	if err != nil {
		log.Fatal(err)
	}
	btn := page.FindByButton("Google 検索")
	err = btn.Submit()
	if err != nil {
		log.Fatal(err)
	}
}

グーグルの検索ページを開発者モード(crt+shift+i)で見てみる。

グーグル検索のフォームにフォーカスをあてると、上記のように色がつく。この色がついた部分がグーグル検索のフォームのコードになる。このコードの中で、idの部分を探す(青く色がついた部分)。このidをコピーして、 searchform := page.FindByID("lst-ib")のように入力すると、lst-ibがついている部分を探して、ドキュメント構造体であるsearchformを作成する。

err = searchform.Fill("selenium")でグーグル検索のフォームにseleniumを入力する。

btn := page.FindByButton("Google 検索")でGoogle検索のボタンの箇所のコードを調べて、err = btn.Submit()でボタンを押すと下記のように表示される。


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

agouti - GoDoc