package main
import (
    "log"
    "github.com/sclevine/agouti"
)
func main() {
    driver := agouti.ChromeDriver(
        agouti.ChromeOptions("args", []string{
            "--headless",
        }),
        agouti.Debug,
    )
    if err := driver.Start(); err != nil {
        log.Fatal(err)
    }
    defer driver.Stop()
    page, err := driver.NewPage()
    if err != nil {
        log.Fatal(err)
    }
    if err := page.Navigate("https://example.com/redmine/login"); err != nil {
        log.Fatalf("Failed to navigate:%v", err)
    }
    identity := page.FindByID("username")
    password := page.FindByID("password")
    identity.Fill("username")
    password.Fill("password")
    if err := page.FindByXPath("//input[@type='submit']").Click(); err != nil {
        log.Fatalf("Failed to :%v", err)
    }
    page.Navigate("https://example.com/redmine/my/page")
    var width, height int
    page.RunScript("return document.body.scrollWidth;", nil, &width)
    page.RunScript("return document.body.scrollHeight;", nil, &height)
    page.Size(width, height)
    page.Screenshot("Screen.png")
}