google-chrome - 如何在 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 进程。
解决方案
推荐阅读
- postgresql - Postgres 数据库复制工作。但不是在程序界面中实时
- azure-devops - 有没有办法使用 Azure DevOps 中的 Azure Web App 部署任务从工件文件夹中部署多个 zip 包?
- sql - 如何根据 SQL 中的另一列合并数据列?
- node.js - PM2 日志文件的默认位置是什么?
- visual-studio - ReadDirectoryChanges 是否阻止写访问?
- python - 在python中覆盖(替换)redis列表的最佳方法
- php - 如何避免多次使用同一个名字?
- html - CSS 手风琴 - 复选框的内容在页脚上方
- c++ - 如何防止从中断例程中调用特定的函数或方法?
- python - 我有一个包含 .mat 格式文件的文件夹。有没有办法可以使用 python 将所有这些文件转换为 json?