前回の続きで、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)で見てみる。

googlekennsaku

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

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

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

selenium


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

agouti - GoDoc