如何在现有的REAL浏览器

时间:2018-05-19 19:58:08

标签: selenium webdriver puppeteer

我不想创建一个用于测试目的的普通新浏览器。我需要在真正的Chrome浏览器中启动一个新标签,其中包含所有书签和扩展程序。请提供简短的代码段。谢谢

1 个答案:

答案 0 :(得分:3)

如果Webdriver没有打开浏览器,it is not possible

但是,使用puppeteer,您可以使用书签和个人资料启动本地安装的Chrome:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({
    headless: false,
    executablePath: "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe",
    args: ['--user-data-dir=C:/Users/USER/AppData/Local/Google/Chrome/User Data/']
  }); 
  const page = await browser.newPage();
})();

Chrome可执行文件和用户数据目录的位置可在此处找到:chrome://version/(以"用户数据和#34结尾)。

使用扩展程序有点诡计:

  

By default, Puppeteer disables extensions when launching Chrome。您可以使用以下方式加载特定扩展程序:

const browser = await puppeteer.launch({
  headless: false,
  args: [
    '--disable-extensions-except=/path/to/extension/',
    '--load-extension=/path/to/extension/',
  ]
});

或者您可以覆盖默认值:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({
    headless: false,
    executablePath: "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe",
    ignoreDefaultArgs : true,
    args:
    [
      '--user-data-dir=C:/Users/USER/AppData/Local/Google/Chrome/User Data/',
      '--disable-background-networking',
      '--disable-background-timer-throttling',
      '--disable-client-side-phishing-detection',
      '--disable-default-apps',
      '--disable-dev-shm-usage',
      // '--disable-extensions',
      '--disable-hang-monitor',
      '--disable-popup-blocking',
      '--disable-prompt-on-repost',
      '--disable-sync',
      '--disable-translate',
      '--metrics-recording-only',
      '--no-first-run',
      '--safebrowsing-disable-auto-update',
    ]
  }); 
  const page = await browser.newPage();
})();