【问题标题】:Does Puppeteer support selecting elements by rendered coordinate location on a page?Puppeteer 是否支持通过页面上呈现的坐标位置来选择元素?
【发布时间】:2020-02-24 04:46:45
【问题描述】:

我想渲染一个页面并运行一个算法来直观地确定哪些位置有我想要选择属性的元素。 Puppeteer 似乎支持输出页面的屏幕截图,mouse move events by (x, y) 但我没有看到任何选择元素以供 (x, y) 检查的方法。

有没有一种方法可以确定页面中的哪个元素在某个坐标处?堆叠元素对于我的用例来说不是问题,因为此时应该可以通过 xpath 访问所需的元素。

如果不直接支持,是否可以使用mouse.move(x, y[, options]) 将光标移动到所需位置,并以某种方式使用可以找到的预定义可搜索属性(例如:<element treasure=yes>)“标记”光标下方的元素用xpath?我在想page.evaluate(pageFunction[, ...args]) 可以用来注入一个javascript函数来动态标记光标下的当前元素。

【问题讨论】:

    标签: javascript xpath puppeteer server-side-rendering cursor-position


    【解决方案1】:

    您可以使用DocumentOrShadowRoot.elementFromPoint()轻松做到这一点

    await page.evaluateHandle((x,y) => document.elementFromPoint(x,y), x,y);
    

    这将为您提供该坐标中最顶部的元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多