如果伪造者浏览器位于某个URL上或网页上具有某个元素,是否可以触发事件?

时间:2019-05-05 20:23:10

标签: node.js puppeteer

如果浏览器在某个URL上或网页上具有某个元素,是否可以通过操纵符触发事件?

我打开了浏览器,用户与页面进行交互,然后执行所需的任何操作,直到他们位于某个URL上为止。是否可以触发这样的事件?

1 个答案:

答案 0 :(得分:1)

是的,这是可能的。您所描述的两个选项都是可行的。比较简单的方法是检查正在发生的请求。

检查请求/ 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的示例)。