Как использовать кукловод для автоматического входа в систему Amazon Connect CCP? - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь использовать puppeteer для автоматизации процесса входа в систему для наших агентов в Amazon Connect, однако я не могу заставить кукловода закончить загрузку страницы входа в CCP.См. Код ниже:

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}, я вижу, что страница никогда не завершает загрузку.

Обратите внимание, что тот же код отлично работает с https://www.github.com/login, поэтому он должен быть чем-то специфичным для исходного кода.КПК Connect.

1 Ответ

0 голосов
/ 23 февраля 2019

Если вы из будущего и у вас возникли проблемы с кукловодом без причины, попробуйте сначала понизить версию кукловода и посмотреть, сохраняется ли проблема.


Это похоже на ошибку в Chromium Development Version73.0.3679.0, В журнале ошибок сказано, что он не может каким-то образом загрузить определенный скрипт, но мы все равно можем загрузить скрипт вручную.

enter image description here

Решение:

Использование Puppeteer версии 1.11.0 решило эту проблему.Но если вы хотите использовать версию кукловода 1.12.2, но с другой версией хрома, вы можете использовать аргумент 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

Я проверил свой локально установленный Chrome, который правильно загружал страницу,

$(which google-chrome) --version
Google Chrome 72.0.3626.119

Примечание. Команда кукловода предложила в своем документе специально использовать Chrome, предоставленный с кодом.(скорее всего, последняя версия для разработчиков) вместо использования других ревизий.

Также я немного отредактировал код, чтобы завершить загрузку, когда все сетевые запросы выполнены, и ввод username видимый .

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();
})();

Конкретный номер редакции можно получить разными способами, один из них - проверить package.json пакета кукловода.URL для 1.11.0:

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})

Результат: enter image description here

...