Элемент кукловода щелкает координатами облупленности - PullRequest
0 голосов
/ 27 апреля 2018

Это сводит меня с ума. Ниже приведен отрывок из спецификации ...

await page.goto('localhost:5000/settings?disable-sw-cache', {
  waitUntil: 'networkidle2'
});

// doesn't seem to help w/ stopping flakiness
await page.waitFor(2000); 

page.click("[data-puppeteer='reload-configuration-link']");
await page.waitForSelector('.mdc-snackbar.mdc-snackbar--active');

const message = await page.evaluate(
  selector => document.querySelector(selector).textContent,
  '.mdc-snackbar.mdc-snackbar--active'
);

expect(message).to.contain('Successfully reloaded device configuration');

Эта спецификация проходит примерно 4 раза из 6. В двух случаях, когда она терпит неудачу, вызов page.click щелкает не по тому элементу. Я вывел координаты в событии щелчка, и они в 30,80, что совершенно неверно.

Когда я регистрирую координаты элемента, на который нужно щелкнуть ...

await page.waitFor(2000); 

// log the current location of the element that is about to be clicked!
const coordinates = await page.evaluate(selector => {
  const element = document.querySelector(selector);
  const { x, y } = element.getBoundingClientRect();
  return [x, y];
}, "[data-puppeteer='reload-configuration-link']");

console.log(coordinates)

page.click("[data-puppeteer='reload-configuration-link']");

Я получаю 64,194, что правильно, но в самой следующей строке page.click иногда нажимает 30,80 по какой-то причине

Есть идеи, почему эти координаты неверны 2 из 6 раз?!


Итак, я запустил свои спецификации w / env DEBUG="puppeteer:mouse,puppeteer:keyboard", чтобы показать отладку по щелчку, а когда спецификация щелкает не тот элемент, отладчик выводит правильные координаты! Я схожу с ума!

1 Ответ

0 голосов
/ 28 апреля 2018

Ах! Удаление конфигурации isMobile config из окна просмотра устраняет эту проблему!

page.setViewport({
  width: 411,
  height: 731,
  deviceScaleFactor: 2.6,
  isMobile: true, // <---------- REMOVE!
  hasTouch: true,
  isLandscape: false
});

Я открыл этот отчет об ошибке: https://github.com/GoogleChrome/puppeteer/issues/2465

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