You have to consider first that you might get many elements on the same position, including the main HTML element.
First, you need to get all the elements:
Array.prototype.slice.call(document.getElementsByTagName("*"))
Then, we now that each element has a function called getClientRects
, which will return an array of "boxes".
Based on that, we can filter all the elements having one box in the coordinate you need:
var x = 150;
var y = 1250;
Array.prototype.slice.call(document.getElementsByTagName("*")).filter(e =>
Array.prototype.slice.call(e.getClientRects()).find(rect =>
rect.top <= x && rect.bottom >= x && rect.left <= y && rect.right >= y))
You could do something like that in your evaluate
call in Puppeteer.