为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 PuppeteerSharp 中设置下载行为?

如何在 PuppeteerSharp 中设置下载行为?

C#
胡说叔叔 2023-12-17 17:06:45
我想设置浏览器的下载行为以满足测试需要我尝试过此主题的解决方案:puppeteer - 如何设置下载位置var browser = await StartNewChromeAsync(); //starting new chrome without extensionsvar pages = await browser.PagesAsync();var firstPage = pages[0];var cdp = await firstPage.Target.CreateCDPSessionAsync();await cdp.SendAsync("Page.setDownloadBehavior", new                {                    behavior = "allow",                    downloadPath = Path.GetAbsolutePath("./testing_downloads")                });await cdp.DetachAsync();我期望文件将在 ./testing_downloads 中下载,但它在默认路径中下载。 我做错了什么?
查看完整描述

2 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

//Set the options for download file through puppeteer

                            var options = new LaunchOptions

                            {

                                Headless = false,

                                ExecutablePath = "Path Of Browser to execute, example c://....edge.exe ", //

                                DefaultViewport = null,

                                Args = new[] { "--no-sandbox", "--start-maximized" },

                                

                            };//Launch puppeteer for scrap the Document Data

                                using (var browser = await Puppeteer.LaunchAsync(options))

                                using (var page = await browser.NewPageAsync())

                                {

                                    await page.Target.CreateCDPSessionAsync().Result.SendAsync("Page.setDownloadBehavior", new

                                    {

                                        behavior = "allow",

                                        downloadPath = directoryToSave

                                        


                                    }, false);



                                    await page.AuthenticateAsync(new Credentials

                                    {

                                        Username = WindowsCredentials.Username,

                                        Password = WindowsCredentials.Password

                                    });


                                    await page.GoToAsync("URL of file to download");


查看完整回答
反对 回复 2023-12-17
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

我发现在现代版本的 Chrome 中无法执行此操作,因为 Page.setDownloadBehavior 已从 CDP v1.3 中删除https://chromedevtools.github.io/devtools-protocol /1-3.

更新: 这项工作https://gist.github.com/vabka/88a9b054ee756a53a44691366b16b474


查看完整回答
反对 回复 2023-12-17
  • 2 回答
  • 0 关注
  • 225 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信