public static async Task<List<string>> VideoLinkList(Page page) { WaitUntilNavigation[] waitUntil = new[] { WaitUntilNavigation.Networkidle0, WaitUntilNavigation.Networkidle2, WaitUntilNavigation.DOMContentLoaded, WaitUntilNavigation.Load }; var next = @"document.getElementById('pnnext')"; var nexts = await page.EvaluateExpressionAsync<object>(next); var linkList = new List<string>(); var isLastPage = (nexts == null); while ((nexts != null) || !isLastPage) { var jsSelectAllAnchors = @"Array.from(document.querySelectorAll('.g'))"; var urls = await page.EvaluateExpressionAsync<object[]>(jsSelectAllAnchors); for (int i = 0; i < urls.Length; i++) { var query = $"document.querySelectorAll('.g')[{i}].getElementsByTagName('a')[0].href"; linkList.Add(await page.EvaluateExpressionAsync<string>(query)); } nexts = await page.EvaluateExpressionAsync<object>(next); if (nexts != null) { var nextHref = @"document.getElementById('pnnext').href"; var nextHrefUrl = await page.EvaluateExpressionAsync<string>(nextHref); isLastPage = (nexts == null) && !string.IsNullOrEmpty(nextHrefUrl); await page.GoToAsync(nextHrefUrl, new NavigationOptions { WaitUntil = waitUntil }); nexts = await page.EvaluateExpressionAsync<object>(next); } else { isLastPage = true; } } return linkList; }