Это сводит меня с ума. Ниже приведен отрывок из спецификации ...
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"
, чтобы показать отладку по щелчку, а когда спецификация щелкает не тот элемент, отладчик выводит правильные координаты! Я схожу с ума!