Best Rod code snippet using rod.Screenshot
main.go
Source:main.go  
...21		console.log(this,  x)22		return {bottom: x.bottom, height: x.height, left:x.left, right:x.right, top:x.top, width:x.width, x:x.x, y:x.y}23	}24	`)25	opts := &proto.PageCaptureScreenshot{26		Format: "png",27		Clip: &proto.PageViewport{28			X:      a.Value.Get("x").Num(),29			Y:      a.Value.Get("y").Num(),30			Width:  a.Value.Get("width").Num(),31			Height: a.Value.Get("height").Num(),32			Scale:  1,33		},34		FromSurface: true,35	}36	bin, _ := page.Screenshot(true, opts)37	utils.OutputFile(path, bin)38}39func results(page *rod.Page, basePath string) {40	time.Sleep(1 * time.Second)41	results := page.MustElements("h2 > a")42	for i, r := range results {43		t := r.MustText()44		fmt.Println(i, t)45		x := r.MustParents("li")[0]46		pathPrefix := basePath + strconv.Itoa(i) + "-" + t47		ioutil.WriteFile(pathPrefix+".link", []byte(*r.MustAttribute("href")), 0777)48		ioutil.WriteFile(pathPrefix+".html", []byte(x.MustHTML()), 0777)49		ioutil.WriteFile(pathPrefix+".txt", []byte(x.MustText()), 0777)50		screenshot(page, x, pathPrefix+".png")51	}52}53func run(search string) {54	defer func() {55		if r := recover(); r != nil {56			fmt.Println("Recovered in f", r, search)57		}58	}()59	device := devices.IPadPro60	browser := rod.New().DefaultDevice(device).Timeout(10 * time.Minute).Trace(true).MustConnect()61	defer browser.MustClose()62	// You can also use bypass.JS directly without rod63	fmt.Printf("js file size: %d\n\n", len(bypass.JS))64	// search := "lose belly fat"65	page := bypass.MustPage(browser)66	page.MustWaitNavigation()67	page.MustNavigate("https://bing.com/?count=100")68	time.Sleep(3 * time.Second)69	page.MustElement(`#sb_form_q`).MustWaitVisible().MustInput(search).MustPress(input.Enter)70	basePath := "results/" + search + "/" + time.Now().Format("2006-01-02T15:04:05") + "/"71	os.MkdirAll(basePath, 0777)72	time.Sleep(3 * time.Second)73	page.MustScreenshotFullPage(basePath + search + "-page1.png")74	results(page, basePath+"page1-")75	page.MustSearch(`[aria-label="Page 2"]`)76	time.Sleep(3 * time.Second)77	page.MustScreenshotFullPage(basePath + search + "-page2.png")78	results(page, basePath+"page2-")79	page.MustSearch(`[aria-label="Page 3"]`)80	time.Sleep(3 * time.Second)81	page.MustScreenshotFullPage(basePath + search + "-page3.png")82	results(page, basePath+"page3-")83	time.Sleep(5 * time.Second)84}85func main() {86	defaults.Show = false87	defaults.Slow = 1200 * time.Millisecond88	defaults.Devtools = true89	// defaults.Dir = "./data"90	b, err := ioutil.ReadFile("./Lose Belly Fat.txt")91	if err != nil {92		fmt.Println("Error reading file", err)93		return94	}95	terms := strings.Split(string(b), "\n")96	for i, search := range terms {97		fmt.Print(i, search)98		run(search)99	}100}101func printReport(page *rod.Page) {102	el := page.MustElement("#broken-image-dimensions.passed")103	for _, row := range el.MustParents("table").First().MustElements("tr:nth-child(n+2)") {104		cells := row.MustElements("td")105		key := cells[0].MustProperty("textContent")106		if strings.HasPrefix(key.String(), "User Agent") {107			fmt.Printf("\t\t%s: %t\n\n", key, !strings.Contains(cells[1].MustProperty("textContent").String(), "HeadlessChrome/"))108		} else {109			fmt.Printf("\t\t%s: %s\n\n", key, cells[1].MustProperty("textContent"))110		}111	}112	page.MustScreenshot("")113}...graph.go
Source:graph.go  
...23	pageList = append(pageList, page)24	pageCount++25	time.Sleep(5 * time.Second)26	if CheckIsMarketCloseDay() {27		fetchNewScreenshot(page, figureMenuItem, updateTimeMenuItem)28		// 妿æ¯éå¸ï¼é£å°±åªæ§è¡ä¸æ¬¡29		// æ§è¡ç»æå°±å
³éæµè§å¨30		defer func(Browser *rod.Browser) {31			pageCount--32			if pageCount == 0 && Browser != nil {33				err := Browser.Close()34				if err != nil {35					println(err)36				}37				Browser = nil38			}39		}(Browser)40	} else {41		NewTicker(10*time.Second, func() {42			fetchNewScreenshot(page, figureMenuItem, updateTimeMenuItem)43		})44		updateSelfFunc := func() {45			RegisterUpdateStockFigure(url, figureMenuItem, updateTimeMenuItem)46		}47		On(figureMenuItem.ClickedCh, updateSelfFunc)48		On(updateTimeMenuItem.ClickedCh, updateSelfFunc)49	}50}51func newBrowser() *rod.Browser {52	device := devices.Device{53		Capabilities: []string{54			"touch",55			"desktop",56		},57		Screen: devices.Screen{58			DevicePixelRatio: 3,59			Horizontal: devices.ScreenSize{60				Height: 1024,61				Width:  1024,62			},63			Vertical: devices.ScreenSize{64				Height: 1024,65				Width:  1024,66			},67		},68		Title:     "IPad",69		UserAgent: "Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1",70	}71	launch := launcher.New().Bin("/Applications/Google Chrome.app/Contents/MacOS/Google Chrome").Headless(true).MustLaunch()72	browser := rod.New().ControlURL(launch).MustConnect().DefaultDevice(device)73	return browser74}75func fetchNewScreenshot(page *rod.Page, figureMenuItem *systray.MenuItem, updateTimeMenuItem *systray.MenuItem) {76	defer func() {77		if err := recover(); err != nil {78			fmt.Println(err)79		}80	}()81	screenshot, err := elementScreenshot(page.MustElement(".snbchart"))82	if err != nil {83		log.Fatalln("err in image", err)84	} else {85		screenshotConfig, _, err := image.DecodeConfig(bytes.NewBuffer(screenshot))86		width, height := 500.0, 300.087		if err == nil {88			height = float64(screenshotConfig.Height) * (width / float64(screenshotConfig.Width))89		}90		figureMenuItem.SetIconWithSize(screenshot, uint32(width), uint32(height))91		updateTime := time.Now().Format("15:04:05")92		updateTimeMenuItem.SetTitle("æ´æ°æ¶é´ï¼" + updateTime)93	}94}95func elementScreenshot(element *rod.Element) ([]byte, error) {96	page := element.Page()97	screenshot, err := page.Screenshot(false, nil)98	if err != nil {99		return nil, err100	}101	bodyElement, err := page.Element("body")102	if err != nil {103		return nil, err104	}105	bodyShape, err := bodyElement.Shape()106	if err != nil {107		return nil, err108	}109	pageBox := bodyShape.Box()110	screenshotConfig, _, err := image.DecodeConfig(bytes.NewBuffer(screenshot))111	if err != nil {...silk.go
Source:silk.go  
...5	"github.com/go-rod/rod/lib/proto"6	"github.com/go-rod/rod/lib/utils"7	"time"8)9func (ds *DragonSpider) TakeScreenshot(pageUrl, testName string, width, height float64) {10	page := rod.New().MustConnect().MustIgnoreCertErrors(true).MustPage(pageUrl).MustWaitLoad()11	screenshot, err := page.Screenshot(true, &proto.PageCaptureScreenshot{12		Format:  proto.PageCaptureScreenshotFormatPng,13		Quality: nil,14		Clip: &proto.PageViewport{15			X:      0,16			Y:      0,17			Width:  width,18			Height: height,19			Scale:  1,20		},21		FromSurface:           true,22		CaptureBeyondViewport: false,23	})24	if err != nil {25		ds.ErrorLog.Println(err)26	}...Screenshot
Using AI Code Generation
1import (2func main() {3	browser := rod.New().MustConnect()4	page := browser.MustPage("")5	page.MustElement("input[name=q]").MustInput("rod")6	page.MustElement("input[name=q]").MustPress(proto.InputKeyEventEnter)7	page.MustScreenshot("screenshot.png")8	browser.MustClose()9}10import (11func main() {12	browser := rod.New().MustConnect()13	page := browser.MustPage("")14	page.MustElement("input[name=q]").MustInput("rod")15	page.MustElement("input[name=q]").MustPress(proto.InputKeyEventEnter)16	page.MustTrace("trace.json")17	browser.MustClose()18}19import (20func main() {21	browser := rod.New().MustConnect()22	page := browser.MustPage("")23	page.MustElement("input[name=q]").MustInput("rod")24	page.MustElement("input[name=q]").MustPress(proto.InputKeyEventEnter)25	page.MustWaitLoad()26	browser.MustClose()27}28import (29func main() {30	browser := rod.New().MustConnect()31	page := browser.MustPage("")32	page.MustElement("input[name=q]").MustInput("rod")33	page.MustElement("input[name=q]").MustPress(proto.InputKeyEventEnter)34	page.MustWaitRequestIdle()35	browser.MustClose()36}37import (38func main() {39	browser := rod.New().MustConnect()Screenshot
Using AI Code Generation
1import (2func main() {3	browser := rod.New().Connect()4	page := browser.Page("")5	page.Screenshot("google.png", &proto.PageCaptureScreenshot{})6}7import (8func main() {9	browser := rod.New().Connect()10	page := browser.Page("")11	page.Screenshot("google.png", &proto.PageCaptureScreenshot{})12}13import (14func main() {15	browser := rod.New().Connect()16	page := browser.Page("")17	page.Screenshot("google.png", &proto.PageCaptureScreenshot{})18}19import (20func main() {21	browser := rod.New().Connect()22	page := browser.Page("")23	page.Screenshot("google.png", &proto.PageCaptureScreenshot{})24}25import (26func main() {27	browser := rod.New().Connect()28	page := browser.Page("")29	page.Screenshot("google.png", &proto.PageCaptureScreenshot{})30}31import (32func main() {33	browser := rod.New().Connect()34	page := browser.Page("")35	page.Screenshot("google.png", &proto.PageCaptureScreenshot{})36}Screenshot
Using AI Code Generation
1import (2func main() {3	browser := rod.New().MustConnect()4	page.MustScreenshot("/path/to/save/screenshot.png")5	utils.E(browser.Close())6}7import (8func main() {9	browser := rod.New().MustConnect()10	page.MustElement("input[name=q]").MustScreenshot("/path/to/save/screenshot.png")11	utils.E(browser.Close())12}13import (14func main() {15	browser := rod.New().MustConnect()16	page.MustElement("input[name=q]").MustScreenshot("/path/to/save/screenshot.png")17	utils.E(browser.Close())18}19import (20func main() {21	browser := rod.New().MustConnect()22	page.MustScreenshot("/path/to/save/screenshot.png")23	utils.E(browser.Close())24}25import (26func main() {27	browser := rod.New().MustConnect()28	page.MustScreenshot("/path/to/save/screenshot.png")29	utils.E(browser.Close())30}31import (32func main() {33	browser := rod.New().MustConnect()Screenshot
Using AI Code Generation
1import (2func main() {3    l := launcher.New().Bin("google-chrome").MustLaunch()4    defer l.Close()5    b := rod.New().ControlURL(l).MustConnect()6    page.MustElement("input[name=q]").MustInput("rod").MustPress("Enter")7    page.MustScreenshot("screenshot.png")8}9import (10func main() {11    l := launcher.New().Bin("google-chrome").MustLaunch()12    defer l.Close()13    b := rod.New().ControlURL(l).MustConnect()14    page.MustElement("input[name=q]").MustInput("rod").MustPress("Enter")15    page.MustScreenshot("screenshot.png")16}17import (18func main() {19    l := launcher.New().Bin("google-chrome").MustLaunch()20    defer l.Close()21    b := rod.New().ControlURL(l).MustConnect()22    page.MustElement("input[name=q]").MustInput("rod").MustPress("Enter")23    page.MustScreenshot("screenshot.png")24}25import (26func main() {27    l := launcher.New().Bin("google-chrome").MustLaunch()28    defer l.Close()29    b := rod.New().ControlURL(l).MustConnect()30    page.MustElement("input[name=q]").MustInput("rod").MustPress("Enter")31    page.MustScreenshot("screenshot.png")32}Screenshot
Using AI Code Generation
1import (2func main() {3	browser := rod.New().MustConnect()4	defer browser.MustClose()5	page.MustElement("input[name=q]").MustInput("rod").MustPress(input.Enter)6	page.MustScreenshot("screenshot.png")7	fmt.Println("Screenshot saved to screenshot.png")8}9import (10func main() {11	browser := rod.New().MustConnect()12	defer browser.MustClose()13	page.MustElement("input[name=q]").MustInput("rod").MustPress(input.Enter)14	title := page.MustEvaluate("document.title").String()15	fmt.Println(title)16}17import (18func main() {19	browser := rod.New().MustConnect()20	defer browser.MustClose()21	page.MustElement("input[name=q]").MustInput("rod").MustPress(input.Enter)22	page.MustWaitNavigation()23	title := page.MustEvaluate("document.title").String()24	fmt.Println(title)25}26import (27func main() {28	browser := rod.New().MustConnect()29	defer browser.MustClose()30	page.MustElement("input[name=q]").MustInput("rod").MustPress(input.Enter)31	page.MustWaitNavigation()32	title := page.MustEvaluate("document.title").String()33	fmt.Println(title)34}35import (36func main() {37	browser := rod.New().MustConnect()38	defer browser.MustClose()39	page.MustElement("input[name=q]").MustInput("rod").MustPress(input.Enter)40	page.MustWaitNavigation()41	title := page.MustEvaluate("document.title").String()42	fmt.Println(title)43}Screenshot
Using AI Code Generation
1import (2func main() {3	browser := rod.New().ControlURL(launcher.New().MustLaunch()).MustConnect()4	page.MustScreenshot("screenshot.png")5	browser.Close()6}7import (8func main() {9	browser := rod.New().ControlURL(launcher.New().MustLaunch()).MustConnect()10	title := page.MustEval(`document.title`).String()11	fmt.Println(title)12	browser.Close()13}14import (15func main() {16	browser := rod.New().ControlURL(launcher.New().MustLaunch()).MustConnect()17	elements := page.MustElements("a")18	fmt.Println(len(elements))19	browser.Close()20}21import (22func main() {23	browser := rod.New().ControlURL(launcher.New().MustLaunch()).MustConnect()24	element := page.MustElement("a")Screenshot
Using AI Code Generation
1import (2func main() {3	b := rod.New().MustConnect()4	page.MustScreenshot("screenshot.png")5	fmt.Println("Screenshot saved to screenshot.png")6}7import (8func main() {9	b := rod.New().MustConnect()10	page.MustScreenshot("screenshot.png")11	fmt.Println("Screenshot saved to screenshot.png")12}13import (14func main() {15	b := rod.New().MustConnect()16	page.MustScreenshot("screenshot.png")17	fmt.Println("Screenshot saved to screenshot.png")18}19import (20func main() {21	b := rod.New().MustConnect()22	page.MustScreenshot("screenshot.png")23	fmt.Println("Screenshot saved to screenshot.png")24}25import (26func main() {27	b := rod.New().MustConnect()28	page.MustScreenshot("screenshot.png")29	fmt.Println("Screenshot saved to screenshot.png")30}31import (32func main() {33	b := rod.New().MustConnect()34	page.MustScreenshot("screenshot.png")35	fmt.Println("Screenshot saved to screenshot.png")36}37import (38func main() {39	b := rod.New().MustConnect()40	page := b.MustPage("Screenshot
Using AI Code Generation
1import (2func main() {3    u := launcher.NewUserMode().MustLaunch()4    defer u.Cleanup()5    browser := rod.New().ControlURL(u).MustConnect()6    page.MustScreenshot(os.TempDir() + "/screenshot.png")7    fmt.Println("Screenshot saved to " + os.TempDir() + "/screenshot.png")8}Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
