TRY AND ERROR

気になったこと、勉強したこと、その他雑記など色々メモしていきます。。Sometimes these posts will be written in English.,

Goでsclevine/agoutiを使ってページ全体をキャプチャする方法

ページの内容によってagouti.Pageのwindowサイズを変えて内容全体が写るようにキャプチャしたい場合、
RunScriptでbodyのサイズをとるjavascriptを実行 -> ページ毎にSize()で指定すれば綺麗にフルスクリーンキャプチャがとれます。
(省略してますが、ChromeDriver使ってます。)

type MyPage struct {
	*agouti.Page
}


/*
 * Take screenshot
 *
 */
func (mypage *MyPage) SS(filename string) {
	var width, height int
	mypage.RunScript("return document.body.scrollHeight;", nil, &height)
	mypage.RunScript("return document.body.scrollWidth;", nil, &width)
	mypage.Size(width, height)
	mypage.Screenshot(filename)
}

PHPのFacebookWebdriverでも確かexecuteScriptみたいなメソッドあったので、同じ感じでいけるかも。