Javascript 如何使用Puppeter自动创建亚马逊连接CCP登录?
我正在尝试使用Puppeter自动化Amazon Connect中代理的登录过程,但是我无法让Puppeter完成CCP登录页面的加载。见下面的代码:Javascript 如何使用Puppeter自动创建亚马逊连接CCP登录?,javascript,google-chrome,puppeteer,google-chrome-headless,amazon-connect,Javascript,Google Chrome,Puppeteer,Google Chrome Headless,Amazon Connect,我正在尝试使用Puppeter自动化Amazon Connect中代理的登录过程,但是我无法让Puppeter完成CCP登录页面的加载。见下面的代码: const browser = await puppeteer.launch(); const page = await browser.newPage(); const url = 'https://ccalderon-reinvent.awsapps.com/connect/ccp#/'; await page.goto(url, {wa
const browser = await puppeteer.launch();
const page = await browser.newPage();
const url = 'https://ccalderon-reinvent.awsapps.com/connect/ccp#/';
await page.goto(url, {waitUntil: 'domcontentloaded'});
console.log(await page.content());
// console.log('waiting for username input');
// await page.waitForSelector('#wdc_username');
await browser.close();
我永远看不到页面的内容,它超时了。我做错什么了吗?如果我使用{headless:false}启动浏览器,我可以看到页面从未完成加载
请注意,相同的代码可以正常使用,因此它必须是Connect的CCP源代码的特定代码。如果您来自future,并且无缘无故与Puppeter有问题,请先尝试降级Puppeter版本,看看问题是否仍然存在
这似乎是Chromium开发版本73.0.3679.0的一个bug,错误日志说它无法加载特定的脚本,但我们仍然可以手动加载脚本 解决方案: 使用Puppeter版本1.11.0解决了这个问题。但是如果您想使用Puppeter版本1.12.2,但有不同的chromium版本,您可以使用
executablePath
参数
以下是《木偶演员》中使用的各个版本(在回答这个问题时)
- 铬73.0.3679.0-木偶演员v1.12.2
- 铬72.0.3582.0-木偶演员v1.11.0
- 铬71.0.3563.0-木偶演员v1.9.0
- 铬70.0.3508.0-木偶演员v1.7.0
- 铬69.0.3494.0-木偶演员v1.6.2
$(which google-chrome) --version
Google Chrome 72.0.3626.119
注意:木偶师团队在他们的文档中建议专门使用代码附带的chrome(最有可能是最新的开发者版本),而不是使用不同的版本
此外,我还稍微编辑了代码,以便在所有网络请求完成且用户名
输入为可见时完成加载
const puppeteer = require("puppeteer");
(async () => {
const browser = await puppeteer.launch({
headless: false,
executablePath: "/usr/bin/google-chrome"
});
const page = await browser.newPage();
const url = "https://ccalderon-reinvent.awsapps.com/connect/ccp#/";
await page.goto(url, { waitUntil: "networkidle0" });
console.log("waiting for username input");
await page.waitForSelector("#wdc_username", { visible: true });
await page.screenshot({ path: "example.png" });
await browser.close();
})();
具体版本号可以通过多种方式获得,一种是检查Puppeter软件包的package.json
。1.11.0
的url是
https://github.com/GoogleChrome/puppeteer/blob/v1.11.0/package.json
如果您想自动下载chrome版本,可以使用browserFetcher
获取特定版本
const browserFetcher = puppeteer.createBrowserFetcher();
const revisionInfo = await browserFetcher.download('609904'); // chrome 72 is 609904
const browser = await puppeteer.launch({executablePath: revisionInfo.executablePath})
结果:
如果您来自future,并且无缘无故与木偶师有问题,请尝试先降低木偶师版本的级别,看看问题是否仍然存在
这似乎是Chromium开发版本73.0.3679.0的一个bug,错误日志说它无法加载特定的脚本,但我们仍然可以手动加载脚本 解决方案: 使用Puppeter版本1.11.0解决了这个问题。但是如果您想使用Puppeter版本1.12.2,但有不同的chromium版本,您可以使用
executablePath
参数
以下是《木偶演员》中使用的各个版本(在回答这个问题时)
- 铬73.0.3679.0-木偶演员v1.12.2
- 铬72.0.3582.0-木偶演员v1.11.0
- 铬71.0.3563.0-木偶演员v1.9.0
- 铬70.0.3508.0-木偶演员v1.7.0
- 铬69.0.3494.0-木偶演员v1.6.2
$(which google-chrome) --version
Google Chrome 72.0.3626.119
注意:木偶师团队在他们的文档中建议专门使用代码附带的chrome(最有可能是最新的开发者版本),而不是使用不同的版本
此外,我还稍微编辑了代码,以便在所有网络请求完成且用户名
输入为可见时完成加载
const puppeteer = require("puppeteer");
(async () => {
const browser = await puppeteer.launch({
headless: false,
executablePath: "/usr/bin/google-chrome"
});
const page = await browser.newPage();
const url = "https://ccalderon-reinvent.awsapps.com/connect/ccp#/";
await page.goto(url, { waitUntil: "networkidle0" });
console.log("waiting for username input");
await page.waitForSelector("#wdc_username", { visible: true });
await page.screenshot({ path: "example.png" });
await browser.close();
})();
具体版本号可以通过多种方式获得,一种是检查Puppeter软件包的package.json
。1.11.0
的url是
https://github.com/GoogleChrome/puppeteer/blob/v1.11.0/package.json
如果您想自动下载chrome版本,可以使用browserFetcher
获取特定版本
const browserFetcher = puppeteer.createBrowserFetcher();
const revisionInfo = await browserFetcher.download('609904'); // chrome 72 is 609904
const browser = await puppeteer.launch({executablePath: revisionInfo.executablePath})
结果:
有可能是因为fingerPrint.js而抛出,但不知何故它检测到了你。我如何确认@Md.AbuTaher???你解决了问题吗?没有,我没有@Md.AbuTaher给你,解决方案。它可能是因为fingerPrint.js而抛出的,但不知何故它检测到了你。我如何确认@Md.AbuTaher???你解决了问题吗?不,我没有@Md.AbuTaher给你,解决方案。