Кукольник отказывается войти в систему, используя ID пользователя / пароль - PullRequest
0 голосов
/ 16 октября 2019

Я запускаю безголовый экземпляр кукловода на виртуальной машине Debian9 Linux под HyperV. Я устанавливаю кукловод, используя npm, так как мой скрипт запускается под Node.js. Код запустится и попытается войти в систему. Вот фрагмент кода:

(async() => {
  const browser = await puppeteer.launch({
  headless: true,
  args:['--no-sandbox', '--disable-setuid-sandbox']
});
const page = await browser.newPage();
await page.goto(
  'http://mysite', {
  waitUntil: 'networkidle2'
});
await page.click(UNAMEFIELD);
await page.keyboard.type("USERNAME");
await page.click(PWDFIELDNAME);
await page.keyboard.type("SUPERSECRETPWD");
await page.click(PWDFIELDNAME);
await page.screenshot({ path: 'screenshots0.png' });
await page.click(LOGINBUTTON);
await page.waitForNavigation();

Я могу проверить, посмотрев на скриншоты, что имя пользователя правильно установлено, и я верю, что пароль правильный. Я могу вручную войти на сайт с хост-компьютера. Сценарий отскочил, и сайт жалуется на неправильное имя пользователя / пароль.

У меня есть похожие скрипты, которые используют casperjs / phantomjs. Они также терпят неудачу таким же образом. Я не думаю, что это на 100% хром / кукловод. Скорее всего, в ядре Linux или дистрибутиве ОС есть что-то, что препятствует принятию пароля. Мое подозрение, может быть, какая-то проблема сопоставления клавиш / набора символов? Эти скрипты работают на OpenSuse Leap42.3. Я думал, что буду более ответственным, перейдя в Debian. Между прочим, на всех машинах, на которых выполняются запущенные сценарии, выполнялась полная установка с графическим интерфейсом. Установка Debian только для консоли.

uname -a дает следующее:

4.19.0-6-amd64 # 1 SMP Debian 4.19.67-2 + deb10u1 (2019-09-20) x86_64 GNU / Linux

Я нахожусь в конце остроумия. Еще одним возможным осложнением является то, что сайт выполняет перенаправление с http на https, и полное доменное имя сайта изменяется. Может ли быть проблема безопасности?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...