Questions tagged «puppeteer»

14
在jest.setTimeout指定的5000ms超时内未调用异步回调
我正在使用puppeteer和jest进行一些前端测试。 我的测试如下所示: describe("Profile Tab Exists and Clickable: /settings/user", () => { test(`Assert that you can click the profile tab`, async () => { await page.waitForSelector(PROFILE.TAB); await page.click(PROFILE.TAB); }, 30000); }); 有时,当我运行测试时,一切都会按预期进行。其他时候,我得到一个错误: Timeout - Async callback was not invoked within the 5000ms timeout specified by jest.setTimeout. at node_modules/jest-jasmine2/build/queue_runner.js:68:21 at Timeout.callback [as …

7
木偶:在.evaluate()中传递变量
我正在尝试将变量传递给Puppeteer中的page.evaluate()函数,但是当我使用以下非常简单的示例时,该变量未定义。evalVar 我是Puppeteer的新手,找不到任何可建立的示例,因此我需要帮助将该变量传递到page.evaluate()函数中,以便在内部使用它。 const puppeteer = require('puppeteer'); (async() => { const browser = await puppeteer.launch({headless: false}); const page = await browser.newPage(); const evalVar = 'WHUT??'; try { await page.goto('https://www.google.com.au'); await page.waitForSelector('#fbar'); const links = await page.evaluate((evalVar) => { console.log('evalVar:', evalVar); // appears undefined const urls = []; hrefs = document.querySelectorAll('#fbar #fsl …

9
如何在Puppeteer中单击带有文本的元素
是否有任何方法(在API中找不到)或解决方案来单击带有文本的元素? 例如,我有html: <div class="elements"> <button>Button text</button> <a href=#>Href text</a> <div>Div text</div> </div> 我想单击包裹文本的元素(单击.elements中的按钮),例如: Page.click('Button text', '.elements')
86 puppeteer 

9
提交表单后,操纵up的页面等待
我使用以下代码提交表单,我希望Puppeteer在表单提交后等待页面加载。 await page.click("button[type=submit]"); //how to wait until the new page loads before taking screenshot? // i don't want this: // await page.waitFor(1*1000); //← unwanted workaround await page.screenshot({path: 'example.png'}); 如何使用puppeteer等待页面加载?

2
如何禁用Docker容器中的核心文件转储
我的PHP容器运行puppeteer生成PDF。通过生成PDF文档,它还在我的容器内创建了两个核心转储文件。我不确定它们的真正来源。 主机/服务器是CentOS 7。 我检查了以下内容: 没有应用程序错误日志,Browsershot / Puppeteer正在运行,没有错误。 找不到错误日志(例如segfault) /var/log/messages 我试图禁用核心转储 通过遵循https://linux-audit.com/understand-and-configure-core-dumps-work-on-linux/的 Disable core dumps部分,我完成了: 将以下内容添加到 /etc/security/limits.conf * soft core 0 * hard core 0 通过以下方式创建了disable-core-dumps.sh: echo “ulimit -c 0 > /dev/null 2>&1” > /etc/profile.d/disable-coredumps.sh 添加了以下内容 /etc/systemd/coredump.conf [Coredump] Storage=none ProcessSizeMax=0 并重新启动服务器和容器。 我也尝试过ulimit -c 0在容器内设置(高山) 以上所有技巧都不适合我。人偶每次生成PDF时,总是会创建两个核心转储文件,如下所示: core.131 core.52 核心文件如下所示: 谁能帮我禁用核心转储?非常感谢。

1
无头浏览器图像质量-无头Chrome,phantom js,slimer js
我正在寻找有关无头浏览器内幕发生情况的更多信息。过去,我一直在使用不同的无头浏览器,例如slimmerJS,Phantom.js和Headless Chrome,目的是在不同的站点截屏。 我从来没有生成过逼真的,清晰的图像,就像您在浏览器中看到的那样,它看起来像一个工具限制,这就是您可以从中获得的最大质量,但是我想了解为什么以及可能如何做得更好。 请比较以下示例。 在此网站https://en.wikipedia.org/wiki/Main_Page中,在左上角找到Wikipedia徽标。 这是无头的chrome通过操纵up拍摄的徽标的屏幕截图: 如果您将真实网站与屏幕截图进行比较,则可以看到图像是如何模糊的。在此示例中,它只是图像,但是HTML文本也会发生这种情况。 现在,如果我要使用计算机拍摄屏幕截图,无论是Windows,Mac,Linux,我都会得到质量很好的屏幕截图,看起来完全是真实的交易。 那么为什么会这样呢?我尝试了所有标准的操作,例如在每个库中设置具有最高质量的屏幕截图,并设置足够大的视口,以使屏幕截图具有不错的分辨率。这真是您从无头的浏览器屏幕截图中可以获得的最高质量吗? 对此领域的任何启发将不胜感激。谢谢!
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.