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;
        }