Best Rod code snippet using rod.MustWaitNavigation
rod-helper.go
Source:rod-helper.go  
...66	page = page.Timeout(timeOut)67	nowRetryTimes := 068	for nowRetryTimes <= maxRetryTimes {69		err = rod.Try(func() {70			wait := page.MustWaitNavigation()71			page.MustNavigate(desURL)72			wait()73		})74		if errors.Is(err, context.DeadlineExceeded) {75			// è¶
æ¶76			return nil, err77		} else if err == nil {78			// 没æé®é¢79			return page, nil80		}81	}82	return nil, err83}84func PageNavigate(page *rod.Page, desURL string, timeOut time.Duration, maxRetryTimes int) (*rod.Page, error) {85	var err error86	page = page.Timeout(timeOut)87	nowRetryTimes := 088	for nowRetryTimes <= maxRetryTimes {89		err = rod.Try(func() {90			wait := page.MustWaitNavigation()91			page.MustNavigate(desURL)92			wait()93		})94		if errors.Is(err, context.DeadlineExceeded) {95			// è¶
æ¶96			return nil, err97		} else if err == nil {98			// 没æé®é¢99			return page, nil100		}101	}102	return nil, err103}104/**105 * @Description: 			访é®ç®æ  Urlï¼è¿å pageï¼åªæ¯è¿ä¸ª page ææï¼å¦æå次åºåå
¶ä»çäºä»¶æ æ106 * @param desURL			ç®æ  Url107 * @param httpProxyURL		http://127.0.0.1:10809108 * @param timeOut			è¶
æ¶æ¶é´109 * @param maxRetryTimes		彿¯éè¶
æ¶ err çæ¶åï¼æå¤å¯ä»¥éè¯å æ¬¡110 * @return *rod.Page111 * @return error112 */113func NewBrowserLoadPage(desURL string, httpProxyURL string, timeOut time.Duration, maxRetryTimes int) (*rod.Page, error) {114	browser, err := NewBrowser(httpProxyURL)115	if err != nil {116		return nil, err117	}118	page, err := browser.Page(proto.TargetCreateTarget{URL: ""})119	if err != nil {120		return nil, err121	}122	page = page.Timeout(timeOut)123	nowRetryTimes := 0124	for nowRetryTimes <= maxRetryTimes {125		err = rod.Try(func() {126			wait := page.MustWaitNavigation()127			page.MustNavigate(desURL)128			wait()129		})130		if errors.Is(err, context.DeadlineExceeded) {131			// è¶
æ¶132			return nil, err133		} else if err == nil {134			// 没æé®é¢135			return page, nil136		}137	}138	return nil, err139}140/**141 * @Description: 			访é®ç®æ  Urlï¼è¿å pageï¼åªæ¯è¿ä¸ª page ææï¼å¦æå次åºåå
¶ä»çäºä»¶æ æ142 * @param desURL			ç®æ  Url143 * @param httpProxyURL		http://127.0.0.1:10809144 * @param timeOut			è¶
æ¶æ¶é´145 * @param maxRetryTimes		彿¯éè¶
æ¶ err çæ¶åï¼æå¤å¯ä»¥éè¯å æ¬¡146 * @return *rod.Page147 * @return error148 */149func NewBrowserLoadPageFromRemoteDocker(desURL string, httpProxyURL, remoteDockerURL string, timeOut time.Duration, maxRetryTimes int) (*rod.Page, error) {150	browser, err := NewBrowserFromDocker(httpProxyURL, remoteDockerURL)151	if err != nil {152		return nil, err153	}154	page, err := browser.Page(proto.TargetCreateTarget{URL: ""})155	if err != nil {156		return nil, err157	}158	page = page.Timeout(timeOut)159	nowRetryTimes := 0160	for nowRetryTimes <= maxRetryTimes {161		err = rod.Try(func() {162			wait := page.MustWaitNavigation()163			page.MustNavigate(desURL)164			wait()165		})166		if errors.Is(err, context.DeadlineExceeded) {167			// è¶
æ¶168			return nil, err169		} else if err == nil {170			// 没æé®é¢171			break172		}173	}174	return page, nil175}176/**...scrape.go
Source:scrape.go  
...52	buttonInput := s.Page.MustElementX(cred.ButtonPath)53	usernameInput.MustWaitInteractable().MustInput(cred.Username)54	passwordInput.MustWaitInteractable().MustInput(cred.Password)55	buttonInput.MustWaitInteractable().MustClick()56	s.Page.MustWaitNavigation()()57	cookies := s.Page.MustCookies()58	var filteredCookies []*proto.NetworkCookie59	for _, cookie := range cookies {60		if cookie.Name == "GETAFREE_AUTH_HASH_V2" {61			filteredCookies = append(filteredCookies, cookie)62		} else if cookie.Name == "GETAFREE_USER_ID" {63			filteredCookies = append(filteredCookies, cookie)64		}65	}66	if len(filteredCookies) < 2 {67		return errors.New("username or password is incorrect or check if your XPath is correct in the settings")68	}69	bytes, err := json.Marshal(proto.CookiesToParams(cookies))70	CheckError(err)71	file, err := os.Create("./login_cookie.json")72	CheckError(err)73	count, err := file.Write(bytes)74	CheckError(err)75	fmt.Println("wrote ", count)76	return nil77}78func (s *Scraper) GetProjects(pfunc func([]*pb.Projects)) func() error {79	// s.Page.MustWaitNavigation()()80	s.Page.WaitLoad()81	var projects []*pb.Projects82	stop, _ := s.Page.Expose("GetProjectList", func(v gson.JSON) (interface{}, error) {83		projectArr := v.Arr()84		for _, p := range projectArr {85			var project pb.Projects86			project.BiddingPrice = p.Get("biddingPrice").String()87			project.Description = p.Get("description").String()88			project.Currency = p.Get("currency").String()89			project.Link = p.Get("link").String()90			project.Selected = p.Get("selected").Bool()91			project.Skills = p.Get("skills").String()92			project.Title = p.Get("title").String()93			projects = append(projects, &project)94		}95		pfunc(projects)96		return nil, nil97	})98	// file, _ := os.Open("./evalProject.js")99	// bytes, _ := ioutil.ReadAll(file)100	_, err := s.Page.Evaluate(&rod.EvalOptions{101		JS: evalProjectFile,102	})103	CheckError(err)104	return stop105}106func (s *Scraper) SubscribeToProject(pfunc func(*pb.Projects)) {107	s.Page.MustWaitNavigation()()108	s.Page.MustWaitLoad()109	s.Page.Expose("GetProject", func(v gson.JSON) (interface{}, error) {110		var project pb.Projects111		project.BiddingPrice = v.Get("biddingPrice").String()112		project.Description = v.Get("description").String()113		project.Currency = v.Get("currency").String()114		project.Link = v.Get("link").String()115		project.Selected = v.Get("selected").Bool()116		project.Skills = v.Get("skills").String()117		project.Title = v.Get("title").String()118		pfunc(&project)119		return nil, nil120	})121	// file, _ := os.Open("./eval.js")...generate.go
Source:generate.go  
...54	page.MustElement("#lastname").MustInput(genAccount.Lastname)55	time.Sleep(2 * time.Second)56	console.Write("Confirming Account")57	page.MustElement("#createAccount").MustClick()58	page.MustWaitNavigation()59	page.MustElement("#circle-skip").MustClick()60	page.MustWaitNavigation()61	console.Write("Created Account")62	return nil63}...MustWaitNavigation
Using AI Code Generation
1import (2func main() {3	browser := rod.New().MustConnect()4	page.MustWaitNavigation().MustElement("input[name=q]").MustInput("rod").MustPress(proto.InputKeyEventCodeEnter)5	page.MustWaitNavigation()6	fmt.Println(page.MustInfo().URL)7	browser.MustClose()8}9import (10func main() {11	browser := rod.New().MustConnect()12	page.MustWaitLoad().MustElement("input[name=q]").MustInput("rod").MustPress(proto.InputKeyEventCodeEnter)13	page.MustWaitLoad()14	fmt.Println(page.MustInfo().URL)15	browser.MustClose()16}17import (18func main() {19	browser := rod.New().MustConnect()20	page.MustWaitRequestIdle()21	fmt.Println(page.MustInfo().URL)22	browser.MustClose()23}24import (25func main() {26	browser := rod.New().MustConnect()27	page.MustWaitRequestIdle(func(req *proto.NetworkRequestWillBeSent) bool {28	})MustWaitNavigation
Using AI Code Generation
1import (2func main() {3	page.MustElement("input[name=q]").MustInput("rod").MustPress(proto.InputKeyEventEnter)4	page.MustWaitNavigation()5	page.MustScreenshot("screenshot.png")6}MustWaitNavigation
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(rod.Enter)6	page.MustWaitNavigation()7}8import (9func main() {10	browser := rod.New().MustConnect()11	defer browser.MustClose()12	page.MustElement("input[name='q']").MustInput("rod").MustPress(rod.Enter)13	page.MustWaitNavigation()14}15import (16func main() {17	browser := rod.New().MustConnect()18	defer browser.MustClose()19	page.MustElement("input[name='q']").MustInput("rod").MustPress(rod.Enter)20	page.MustWaitNavigation()21}22import (23func main() {24	browser := rod.New().MustConnect()25	defer browser.MustClose()26	page.MustElement("input[name='q']").MustInput("rod").MustPress(rod.Enter)27	page.MustWaitNavigation()28}29import (30func main() {31	browser := rod.New().MustConnect()32	defer browser.MustClose()33	page.MustElement("input[name='q']").MustInput("rod").MustPress(rod.Enter)34	page.MustWaitNavigation()35}36import (37func main() {38	browser := rod.New().MustConnect()39	defer browser.MustClose()MustWaitNavigation
Using AI Code Generation
1import (2func main() {3	browser := rod.New().MustConnect()4	page.MustElement("input[name=q]").MustInput("rod").MustPress(input.Enter)5	page.MustWaitNavigation()6}7import (8func main() {9	browser := rod.New().MustConnect()10	page.MustElement("input[name=q]").MustInput("rod").MustPress(input.Enter)11	page.MustWaitLoad()12}13import (14func main() {15	browser := rod.New().MustConnect()16	page.MustElement("input[name=q]").MustInput("rod").MustPress(input.Enter)17	page.MustWaitIdle()18}19import (20func main() {21	browser := rod.New().MustConnect()22	page.MustElement("input[name=q]").MustInput("rod").MustPress(input.Enter)23	page.MustWaitRequestIdle()24}MustWaitNavigation
Using AI Code Generation
1import (2func main() {3	browser := rod.New().MustConnect()4	defer browser.MustClose()5	page.MustWaitNavigation().MustElement("input[name=q]").MustInput("rod").MustPress("Enter")6	log.Println("search rod in google")7}8import (9func main() {10	browser := rod.New().MustConnect()11	defer browser.MustClose()12	page.MustWaitLoad().MustElement("input[name=q]").MustInput("rod").MustPress("Enter")13	log.Println("search rod in google")14}15import (16func main() {17	browser := rod.New().MustConnect()18	defer browser.MustClose()19	page.MustWaitIdle().MustElement("input[name=q]").MustInput("rod").MustPress("Enter")20	log.Println("search rod in google")21}22import (23func main() {24	browser := rod.New().MustConnect()25	defer browser.MustClose()26	page.MustWaitRequestIdle().MustElement("input[name=q]").MustInput("rod").MustPress("Enter")27	log.Println("search rod in google")28}29import (30func main() {31	browser := rod.New().MustConnect()32	defer browser.MustClose()33	page.MustWaitRequestIdle().MustElement("input[name=q]").MustInput("rod").MustPress("Enter")34	log.Println("search rod in google")35}36importMustWaitNavigation
Using AI Code Generation
1import (2func main() {3	browser := rod.New().MustConnect()4	defer browser.MustClose()5	page.MustWaitNavigation()6	page.MustWaitNavigation()7	browser = rod.New().ControlURL(launcher.New().MustLaunch()).MustConnect()8	defer browser.MustClose()9	page.MustWaitNavigation()10	page.MustWaitNavigation()11}MustWaitNavigation
Using AI Code Generation
1import (2func main() {3	browser := rod.New().ControlURL(launcher.New().MustLaunch()).MustConnect()4	page.MustWaitNavigation()5	browser.Close()6}7import (8func main() {9	browser := rod.New().ControlURL(launcher.New().MustLaunch()).MustConnect()10	page.MustWaitLoad()11	browser.Close()12}13import (14func main() {15	browser := rod.New().ControlURL(launcher.New().MustLaunch()).MustConnect()16	page.MustWaitRequestIdle()17	browser.Close()18}19import (20func main() {21	browser := rod.New().ControlURL(launcher.New().MustLaunch()).MustConnect()22	page.MustWaitRequestIdle()23	browser.Close()24}25import (MustWaitNavigation
Using AI Code Generation
1import (2func main() {3	browser := rod.New().ControlURL(launcher.New().MustLaunch()).MustConnect()4	page.MustWaitNavigation(func() {5		page.MustElement("input[name=q]").MustInput("rod").MustPress(rod.Enter)6	}).MustElement("h3").MustText()7	fmt.Println("done")8	browser.MustClose()9}10import (11func main() {12	browser := rod.New().ControlURL(launcher.New().MustLaunch()).MustConnect()13	page.MustWaitLoad(func() {14		page.MustElement("input[name=q]").MustInput("rod").MustPress(rod.Enter)15	}).MustElement("h3").MustText()16	fmt.Println("done")17	browser.MustClose()18}19import (20func main() {21	browser := rod.New().ControlURL(launcher.New().MustLaunch()).MustConnect()22	page.MustWaitIdle(func() {23		page.MustElement("input[name=q]").MustInput("rod").MustPress(rod.Enter)MustWaitNavigation
Using AI Code Generation
1import (2func main() {3	url := launcher.NewUserMode().MustLaunch()4	defer launcher.New().MustClose()5	browser := rod.New().ControlURL(url).MustConnect()6	defer browser.MustClose()7	page := browser.MustPage("")8	page.MustElement("input[name=q]").MustInput("rod").MustPress(input.Enter)9	page.MustWaitNavigation()10}11import (12func main() {13	url := launcher.NewUserMode().MustLaunch()14	defer launcher.New().MustClose()15	browser := rod.New().ControlURL(url).MustConnect()16	defer browser.MustClose()17	page := browser.MustPage("")18	page.MustElementR("input[name=q]", "rod").MustPress(input.Enter)19	page.MustWaitNavigation()20}21import (22func main() {23	url := launcher.NewUserMode().MustLaunch()24	defer launcher.New().MustClose()25	browser := rod.New().ControlURL(url).MustConnect()26	defer browser.MustClose()27	page := browser.MustPage("")28	page.MustWaitNavigation()29}30import (31func main() {32	url := launcher.NewUserMode().MustLaunch()MustWaitNavigation
Using AI Code Generation
1import (2func main() {3	browser := rod.New().MustConnect()4	page := browser.MustPage("")5	page.MustWaitLoad()6	page.MustWaitIdle()7	page.MustWaitNavigation()8	page.MustWaitNavigation().MustWaitLoad()9}10Recommended Posts: Go | MustWaitLoad() method in RodLearn 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!!
