首页 > 解决方案 > 如何在 Puppeteer 无头测试中处理 Windows 身份验证

问题描述

如何进入使用 Windows 身份验证的应用程序,

大家好,我是 puppeteer 的新手,试图用 puppeteer 进行一些自动化和性能测试,所以在尝试进入应用程序并进行样本检查时无法继续,因为 Windows 身份验证无法通过请帮助,我尝试了下面的代码不工作:(

const puppeteer = require('puppeteer');



async function test() {

    const proxyUrl = 'URL';
    const username = 'Uname';
    const password = 'pwd';

    const browser = await puppeteer.launch({
        args: [`--proxy-server=${proxyUrl}`],
        headless: false,
    });

    // let browser = await puppeteer.launch({ headless: false });
    let page = await browser.newPage();

    await page.authenticate({ username, password });
    await page.goto('URL')

    const html = await page.$eval('.ds-tile-container', e => e.innerHTML)
    expect(html).not.toBeNull();
    await page.pdf({ path: 'hn.pdf', format: 'A4' });

    browser.close()
}

test();

我也试过下面的代码

const oldProxyUrl = 'https://siteurl:8080';
    const newProxyUrl = await proxyChain.anonymizeProxy(oldProxyUrl);

    console.log(newProxyUrl);

    const args = [
        '--disable-setuid-sandbox',
        '--no-sandbox',
        '--ignore-certificate-errors',
        '--ignore-certificate-errors-spki-list ',
      ];
      const options = {
        args,
        headless: true,
        ignoreHTTPSErrors: true,
      };

    const browser = await puppeteer.launch(options);

现在出现错误

(节点:20520)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝 id:1):错误:无效的“proxyUrl”选项:当前仅支持 HTTP 代理。(节点:20520)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的 Promise 拒绝将使用非零退出代码终止 Node.js 进程。

标签: google-chromeautomationchromiumpuppeteer

解决方案


推荐阅读