当前位置: 首页 > 面试题库 >

将jQuery注入Puppeteer页面

马嘉勋
2023-03-14
问题内容

我正在尝试将jQuery注入我的Puppeteer页面,因为document.querySelector这并不适合我:

async function inject_jquery(page){
  await page.evaluate(() => {
    var jq = document.createElement("script")
    jq.src = "https://code.jquery.com/jquery-3.2.1.min.js"
    document.querySelector("head").appendChild(jq)
  })
  const watchDog = page.waitForFunction('window.jQuery !== undefined');
  await watchDog;
}

结果是它大多超时。有没有人有办法解决吗?


问题答案:

我曾经page.addScriptTag注入js文件

...
await page.addScriptTag({url: 'https://code.jquery.com/jquery-3.2.1.min.js'})
...

page.addScriptTag-文档

使用示例 puppeteer: 0.12.0

import { launch } from 'puppeteer'
(async () => {
    const browser = await launch({headless: false});
    const page = await browser.newPage();
    await page.goto('https://example.com', {waitUntil: 'networkidle'});
    await page.addScriptTag({url: 'https://code.jquery.com/jquery-3.2.1.min.js'});
    await page.close();
    await browser.close();
})();


 类似资料:
  • 我尝试用木偶器生成pdf文件。它对一个页面很好,但当我尝试生成多页pdf文档时,我有一个bug的分页符。HTML模板用于下面生成。拜托,能帮我就帮我。复制的前提条件:以100%的高度填充第一页,并为下面的块添加标题。 HTML模板 生成PDF Bug在此输入图像描述

  • Puppeteer 是一个控制 headless Chrome 的 Node.js API 。它是一个 Node.js 库,通过 DevTools 协议提供了一个高级的 API 来控制 headless Chrome。它还可以配置为使用完整的(非 headless)Chrome。 在浏览器中手动完成的大多数事情都可以通过使用 Puppeteer 完成,下面是一些入门的例子: 生成屏幕截图和 PDF

  • 问题内容: 有什么方法可以牢记jQuery Mobile框架的操作方式来修复页面,以便页脚始终与页面底部对齐-不管高度如何。 按照目前的情况,jQuery页面的高度将发生变化,尤其是当设备从纵向旋转为横向时,因此解决方案必须考虑到这一点。 只是为了澄清-我不需要页脚位于视口的底部,而只是为了使默认页面高度不低于视口高度而工作。 谢谢。 问题答案: 您可以在CSS文件中添加此代码: 因此,页面数据角

  • 自 v1.7.0 以来的每个版本我们都发布了两个包: puppeteer puppeteer-core puppeteer 是浏览器自动化的 产品。安装后,它会下载一个版本的 Chromium,然后使用puppeteer-core 驱动工作。作为最终用户产品,puppeteer 支持一堆方便的 PUPPETEER_* env 变量来调整行为。 puppeteer-core 是一个 库 来帮助驱动任

  • 问题内容: 我正在通过ajax将表单动态插入页面。将其插入dom树后,我想重新初始化jquery mobile以设置表单样式。我查看了http://jquerymobile.com/test/docs/api/events.html,但是由于该文档对jquery mobile毫无帮助,因此我无法找到正确的事件。 问题答案: 在将表单添加到DOM之后,请在表单上使用来初始化刚添加的所有小部件(表单元

  • Puppeteer 模块提供了一种启动 Chromium 实例的方法。 下面就是使用 Puppeteer 进行自动化的一个典型示例: const puppeteer = require('puppeteer'); puppeteer.launch().then(async browser => { const page = await browser.newPage(); await p