我正在尝试使用Puppeteer进行右键单击。
我尝试添加选项:
await component.click({ button: "right" })
但是我得到的只是定期单击该组件。我关注了Puppeteer的API。
我在做什么错了?
答案 0 :(得分:2)
可以将elementHandle.click()
与button
选项设置为'right'
一起使用来右键单击元素是正确的:
const example = await page.$( '#example' );
await example.click( {
button : 'right'
});
根据elementHandle.click()
的官方文档:
如果需要,此方法将元素滚动到视图中,然后使用
page.mouse
单击元素的中心。如果该元素与DOM分离,则该方法将引发错误。
我们可以通过查看source code for mouse.click()
来验证这一点,并且可以看到在Chrome DevTools协议中将button
选项发送给Input.dispatchMouseEvent
之前已经考虑过。
可用于右键单击元素的另一种方法是使用use page.click()
:
await page.click( '#example', {
button : 'right'
});
或者,您可以使用page.evaluate()
右键单击在页面DOM环境中执行了JavaScript的元素:
await page.evaluate( () => {
const example = document.getElementById( 'example' );
const event = document.createEvent( 'MouseEvents' );
event.initMouseEvent( 'click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 2, null );
example.dispatchEvent( event );
});