如果浏览器在某个URL上或网页上具有某个元素,是否可以通过puppeteer触发事件?
我打开了一个浏览器,用户与页面进行交互,并根据自己的意愿进行操作,直到它们位于某个URL上为止。这有可能触发这样的事件吗?
最佳答案
是的,这是可能的。您所描述的两个选项都是可行的。比较简单的方法是检查正在发生的请求。
检查请求/ URL
这是一个代码示例,它通过在request
事件中列出来检查正在发生的请求。请记住,请求可能发生在页面上的任何位置(例如,在iframe中)。因此,根据您的用例,您可能还希望检查请求是否在主页内发生(通过使用page.url()
)。
page.on('request', request => {
const url = request.url();
if (url === '...') {
// trigger event
}
});
检查元素
如果要检查页面上是否存在特定元素,可以等待
domcontentloaded
事件,然后检查该元素是否存在:page.on('domcontentloaded', () => {
const element = page.$('#element-selector');
if (element) {
// element is present, trigger event
}
});
请记住,这只会检查一次。要连续检查元素是否存在,可以使用
MutationObserver
(请参见该here的示例)。关于node.js - 如果伪造者浏览器在某个URL上或网页上具有某个元素,是否可以触发事件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55996086/