ElementFromPoint在MDN中进行了描述,但是我在Puppeteer中找不到类似的功能。
我知道我可以像page.$eval
那样执行代码,但是我想知道是否有直接的page.elementFromPoint
API。
MDN文档链接:
https://developer.mozilla.org/en-US/docs/Web/API/DocumentOrShadowRoot/elementFromPoint
答案 0 :(得分:2)
当前,没有为DocumentOrShadowRoot.elementFromPoint()
显式构建的Puppeteer函数,但是您可以使用page.evaluate()
直接在页面DOM环境中执行此功能:
#include <boost/hana.hpp>
namespace hana = boost::hana;
constexpr auto typed_set = [](auto&& ...x) {
return hana::make_map(
hana::make_pair(hana::typeid_(x), std::forward<decltype(x)>(x))...
);
};
int main() {
auto a = typed_set(1, 'a', 3.0f);
auto b = typed_set('c');
auto c = hana::difference(a, b);
BOOST_HANA_RUNTIME_ASSERT(c == typed_set(1, 3.0f));
}
如果需要在特定坐标处单击或点击元素,则可以使用mouse.click()
或touchscreen.tap()
:
await page.evaluate( () => {
const example = document.elementFromPoint( 100, 100 );
example.style.color = '#f00';
});