如何解决在Puppeteer Sharp中完成程序后如何停止关闭浏览器
我们正在为客户提供密码管理解决方案。我们可以使用以下代码使用puppeter sharp成功地使用户名和密码自动化。
但是在程序执行后,浏览器会自动关闭。无论如何,在程序执行后是否可以使浏览器继续运行。
static async Task Main(string[] args)
{
var options = new LaunchOptions { Headless = false,ExecutablePath = "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe",Args = new string[] { "--no-sandbox" } };
using (var browser = await Puppeteer.LaunchAsync(options))
using (var page = await browser.NewPageAsync())
{
// use page
await page.GoToAsync("https://accounts.google.com/");
//await page.WaitForNavigationAsync();
// await page.WaitForSelectorAsync("type=email");
// await page.ClickAsync("type=email");
// await page.WaitForNavigationAsync();
await Task.Delay(2000);
//TODO : change to your email
await page.TypeAsync("#identifierId","someusername@gmail.com");
await page.WaitForSelectorAsync("#identifierNext");
await page.ClickAsync("#identifierNext");
await Task.Delay(2000);
await page.WaitForSelectorAsync(@"input[type='password']");
await Task.Delay(2000);
await page.ClickAsync(@"input[type='password']");
await Task.Delay(2000);
//TODO : change to your password
await page.TypeAsync(@"input[name='password']","somepassword");
await Task.Delay(2000);
await page.WaitForSelectorAsync("#passwordNext");
await Task.Delay(2000);
await page.ClickAsync("#passwordNext");
await Task.Delay(2000);
await page.WaitForNavigationAsync();
}
}
解决方法
如果要自动化浏览器,然后将其打开以进行用户交互,则需要先启动浏览器 ,然后才能将其自动化,并将代码附加到该浏览器实例。这个问题提供了一些有关如何执行此操作的信息:
Puppeteer C#: Connecting to Running Chrome Instance
本文将对该策略进行更详细的介绍:
https://medium.com/@jaredpotter1/connecting-puppeteer-to-existing-chrome-window-8a10828149e0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。