Zil*_*ith 10 google-chrome chromium node.js puppeteer
我想通过下面的代码使用 node.js puppeteer 删除 headless=false 浏览器中的历史记录,但没有方法工作。
await page.goto('chrome://settings/clearBrowserData');
await page.keyboard.down('Enter');
Run Code Online (Sandbox Code Playgroud)
第二个代码
await page.keyboard.down('ControlLeft');
await page.keyboard.down('ShiftLeft');
await page.keyboard.down('Delete');
await page.keyboard.down('Enter');
Run Code Online (Sandbox Code Playgroud)
我也尝试使用.evaluateHandle()和.click()运行,但它们都不起作用。如果有人知道如何使用 puppeteer 清除历史记录,请回答我。
Tho*_*orf 25
无法chrome://...像那样导航到浏览器设置页面 ( )。
您有三个选择:
要清除历史记录(包括 cookie 和任何数据),您可以在puppeteer中使用名为BrowserContext的“隐身”窗口。
您可以通过调用来创建上下文browser.createIncognitoBrowserContext()。来自文档的引用:
创建一个新的隐身浏览器上下文。这不会与其他浏览器上下文共享 cookie/缓存。
例子
const context = await browser.createIncognitoBrowserContext();
const page = await context.newPage();
// Execute your code
await page.goto('...');
// ...
await context.close(); // clear history
Run Code Online (Sandbox Code Playgroud)
此示例将创建一个新的隐身浏览器窗口并在其中打开一个页面。从那时起,您可以page像往常一样使用手柄。
要清除其中的任何 cookie 或历史记录,只需通过 关闭上下文context.close()。
如果您不能依赖使用上下文(因为使用扩展时不支持它们),您可以使用Chrome DevTools 协议来清除浏览器的历史记录。它具有在 puppeteer 中未实现的功能来重置 cookie 和缓存。您可以通过 CDPSession 直接使用 Chrome DevTools 协议中的函数。
例子
const client = await page.target().createCDPSession();
await client.send('Network.clearBrowserCookies');
await client.send('Network.clearBrowserCache');
Run Code Online (Sandbox Code Playgroud)
这将指示浏览器通过直接调用Network.clearBrowserCookies和来清除 cookie 和缓存Network.clearBrowserCache。
如果这两种方法都不可行,您始终可以通过关闭旧实例并创建一个新实例来重新启动浏览器。这将清除所有存储的数据。
| 归档时间: |
|
| 查看次数: |
16521 次 |
| 最近记录: |