示例#1
0
 /// <inheritdoc cref="IFrame.WaitForNavigationAsync(WaitUntilNavigation)"/>
 public Task <IResponse> WaitForNavigationAsync(WaitUntilNavigation waitUntil)
 {
     throw new System.NotImplementedException();
 }
示例#2
0
 public Task ShouldWaitForFromTheChildFrame(WaitUntilNavigation waitUntil)
 => NetworkIdleTestAsync(
     Page.MainFrame,
     waitUntil, () => Page.GoToAsync(TestConstants.ServerUrl + "networkidle-frame.html", waitUntil),
     true);
示例#3
0
 /// <inheritdoc cref="IFrame.GoToAsync(string, WaitUntilNavigation)"/>
 public Task <IResponse> GoToAsync(string url, WaitUntilNavigation waitUntil)
 => GoToAsync(url, new GoToOptions {
     WaitUntil = new[] { waitUntil }
 });
示例#4
0
        public async Task ShouldNavigateToEmptyPage(WaitUntilNavigation waitUntil)
        {
            var response = await Page.GoToAsync(TestConstants.EmptyPage, new NavigationOptions { WaitUntil = new[] { waitUntil } });

            Assert.Equal(HttpStatusCode.OK, response.Status);
        }
示例#5
0
 /// <inheritdoc cref="IFrame.WaitForNavigationAsync(WaitUntilNavigation)"/>
 public Task <IResponse> WaitForNavigationAsync(WaitUntilNavigation waitUntil)
 => WaitForNavigationAsync(new WaitForNavigationOptions {
     WaitUntil = new[] { waitUntil }
 });
示例#6
0
 /// <inheritdoc />
 public Task SetContentAsync(string html, WaitUntilNavigation waitUntil) => throw new NotImplementedException();
示例#7
0
        /// <summary>
        /// 异步截图
        /// </summary>
        /// <typeparam name="T1"></typeparam>
        /// <typeparam name="T2"></typeparam>
        /// <typeparam name="T3"></typeparam>
        /// <typeparam name="T4"></typeparam>
        /// <param name="url"></param>
        /// <param name="savePath"></param>
        /// <param name="isTagName"></param>
        /// <param name="action"></param>
        /// <param name="par1"></param>
        /// <param name="par2"></param>
        /// <param name="par3"></param>
        /// <param name="par4"></param>
        /// <param name="width"></param>
        /// <param name="height"></param>
        /// <returns></returns>
        public static async Task ScreenshotAsync <T1, T2, T3, T4>(string url, string savePath, string isTagName, Action <T1, T2, T3, T4> action, T1 par1, T2 par2, T3 par3, T4 par4, int width = 1000, int height = 1000)
        {
            NLogHelp.InfoLog(url + "截图进来时间----:" + par4 + "  -----------" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
            await _mutex.WaitAsync();

            if (_browser == null)
            {
                await InItBrowser();
            }
            try
            {
                //Action<T4> action1 = async (time) =>
                //{
                //    using Page page = await _browser.NewPageAsync();
                //    await page.SetViewportAsync(new ViewPortOptions
                //    {
                //        Width = width,
                //        Height = height
                //    });
                //    WaitUntilNavigation[] wn = new WaitUntilNavigation[50];
                //    wn[0] = WaitUntilNavigation.DOMContentLoaded;
                //    wn[1] = WaitUntilNavigation.Load;
                //    await page.GoToAsync(url, new NavigationOptions() { WaitUntil = wn });
                //    try
                //    {
                //        //await page.PdfAsync(savePath);
                //        NLogHelp.InfoLog(url + "截图开始时间----:" + time + "  -----------" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                //        await page.ScreenshotAsync(savePath, new ScreenshotOptions() { Type = ScreenshotType.Png });
                //        NLogHelp.InfoLog(url + "截图结束时间----:" + time + "  -----------" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                //        action?.Invoke(par1, par2, par3, time);
                //    }
                //    catch (Exception ex)
                //    {
                //        NLogHelp.ErrorLog("截图出错", ex);
                //    }

                //};
                //action1(par4);
                await Task.Run(async() =>
                {
                    T4 time         = par4;
                    using Page page = await _browser.NewPageAsync();
                    await page.SetViewportAsync(new ViewPortOptions
                    {
                        Width  = width,
                        Height = height
                    });
                    WaitUntilNavigation[] wn = new WaitUntilNavigation[50];
                    wn[0] = WaitUntilNavigation.DOMContentLoaded;
                    wn[1] = WaitUntilNavigation.Load;
                    await page.GoToAsync(url, new NavigationOptions()
                    {
                        WaitUntil = wn
                    });
                    try
                    {
                        //await page.PdfAsync(savePath);
                        NLogHelp.InfoLog(url + "截图开始时间----:" + time + "  -----------" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                        await page.ScreenshotAsync(savePath, new ScreenshotOptions()
                        {
                            Type = ScreenshotType.Png
                        });
                        NLogHelp.InfoLog(url + "截图结束时间----:" + time + "  -----------" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                        action?.Invoke(par1, par2, par3, time);
                    }
                    catch (Exception ex)
                    {
                        NLogHelp.ErrorLog("截图出错", ex);
                    }
                });
            }
            catch (Exception ex)
            {
                GC.Collect();
                NLogHelp.ErrorLog("截图----出错:", ex);
                throw ex;
            }
            finally
            {
                _mutex.Release();
                GC.Collect();
            }
        }