问题标签 [google-chrome-headless]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
67526 浏览

node.js - Puppeteer:如何处理多个标签?

场景:用于开发人员应用注册的 Web 表单,具有两部分工作流程。

第 1 页:填写开发者应用程序详细信息并单击按钮以创建应用程序 ID,该应用程序 ID 在新选项卡中打开...

第 2 页:应用程序 ID 页面。我需要从该页面复制 App ID,然后关闭选项卡并返回第 1 页并填写 App ID(从第 2 页保存),然后提交表单。

我了解基本用法 - 如何打开第 1 页并单击打开第 2 页的按钮 - 但是当第 2 页在新选项卡中打开时,我如何获得第 2 页的句柄?

例子:

2017-10-25 更新

仍在寻找一个好的使用示例。

0 投票
2 回答
363 浏览

selenium-chromedriver - 如何在 PythonAnywhere 上设置 Chrome Headless?

我想在我的 PythonAnywhere 实例上设置 Chrome 以无头模式和用于 Selenium 测试的 ChromeDriver。我找不到任何关于如何解决这个问题的说明。请问有人对文档有任何建议/指针吗?

0 投票
0 回答
320 浏览

google-chrome - 无法使用 selenium 和 chrome 无头模式访问 chrome 运行时

我有一个使用SeleniumChrome的简单 F# 项目。我注意到当 Chrome 以无头模式启动时,chrome 对象没有定义。

另一方面,如果我“正常”运行它,则正确引用了 chrome 对象。

示例代码:

如果我运行上面的代码,我会得到以下输出:

如果我省略无头选项,我会得到以下输出:

这是一个错误还是我错过了什么?

0 投票
6 回答
16648 浏览

javascript - 使用 Puppeteer 检索 JavaScript 渲染的 HTML

我正在尝试从这个 NCBI.gov 页面中抓取 html 。我需要包含#see-all URL 片段,这样我才能保证获得搜索页面,而不是从不正确的基因页面https://www.ncbi.nlm.nih.gov/gene/119016中检索 HTML 。

URL 片段不会传递给服务器,而是由页面客户端的 javascript 用于(在这种情况下)创建完全不同的 HTML,这是您在浏览器中访问页面并“查看page source”,这是我要检索的 HTML。R readLines() 忽略 url 标签后跟 #

我首先尝试使用 phantomJS,但它只是返回了此处描述的错误ReferenceError: Can't find variable: Map,这似乎是由于 phantomJS 不支持 NCBI 正在使用的某些功能,因此消除了这种解决方法。

我使用以下用 node.js 评估的 Javascript 在 Puppeteer 上取得了更大的成功:

但是,这返回了似乎是预渲染的 html。我如何(以编程方式)获取我在浏览器中获得的最终 html?

0 投票
1 回答
869 浏览

node.js - puppeteer 中的源图?

我正在玩偶操作(这可能是动词吗?)一个使用 webpack 构建的应用程序,page.on('error')我收到如下错误:

有没有办法,如果是这样,我怎样才能正确地对这些错误进行源映射?

(我确定我正在生成源图)

0 投票
2 回答
17964 浏览

google-chrome - 如何添加 chrome 二进制文件以在 CI 服务器上的 headless chrome 上运行例如 Karma 测试

我喜欢在无头 chrome 上运行我的业力单元测试。在我的机器上使用 karma-chrome-launcher 并将浏览器设置为“ChromeHeadless”。但在 CI 服务器上,它会失败并显示消息“您的平台上的 ChromeHeadless 浏览器没有二进制文件”。无法在 CI 机器上安装 chrome。还有另一种加载chrome二进制文件的方法吗?例如,google puppeteer 模块似乎在运行时加载了该模块。来自文档:“Puppeteer 下载并使用特定版本的 Chromium”。我怎样才能达到同样的效果?

0 投票
1 回答
1163 浏览

google-chrome - 使用 Artoo.js 和 Google Puppeteer 进行网页抓取

我似乎无法将Artoo.jsPuppeteer一起使用。

我尝试通过 使用它npm install artoo-js,但它不起作用。

我还尝试使用 Puppeteer 命令注入构建路径分布page.injectFile(filePath),但我没有运气。

有人能够成功实现这两个库吗?

如果是这样,我会喜欢如何注入 Artoo.js 的代码片段。

0 投票
0 回答
1730 浏览

node.js - 错误:此命令需要会话 ID,但在响应负载中未找到

我想用无头浏览器引擎做一些 UI 测试。由于我们的 Linux 中没有图形单元,因此我使用 docker for chrome

我设置了一个测试:

测试由:

但我得到的只是:

谁能帮我?

0 投票
1 回答
827 浏览

google-chrome - Pupeeteer 到容器中的无头 Chrome

我试图弄清楚如何在 docker 容器中运行无头 Chrome。然后我找到了这个。但是现在我不知道如何在那个容器中运行我的测试。

有人可以给我一个大致的方向,我应该在哪里挖掘,我尝试浏览Pupeeteer的文档,但找不到任何东西。也许在野外有一个最小的例子,我可以使用 Karma 或其他任何东西在容器中运行测试并记录结果。

请注意,尽管我想在容器之外编译/捆绑 javascript,并使用它来执行其中的已编译/捆绑测试。

也许稍后我想使用相同的方法来运行我的验收测试,但这次是通过在外部运行 Web 服务器,可能在一个单独的容器中。

我的最终目标是能够运行一堆用 Clojurescript 编写的测试,但我认为虽然还没有人做过类似的事情。也许有人有。

0 投票
3 回答
3423 浏览

python - 使用 ChromeDriver 运行计划任务

我制作了一个基于 Selenium 和 Chromedriver 的脚本。基本上是一个登录网站的程序。写一条评论(来自计算机的 txt 文件)然后关闭程序,不,它不是垃圾邮件脚本,而是我刚刚从 python 和 selenium 开始制作的脚本。

如果我手动启动程序,程序本身运行良好。那么就没有问题了,chromedriver是无头的,因为我不需要看到整个过程chrome_options.add_argument("--headless")

然后我从这里看到了一个帖子调度 Python 脚本

我确实遵循了它设置

但我遇到的问题是,每次都是时间,程序开始了。它出现了脚本,然后是我设法打印的快速错误

错误

我可以看到 Chromedriver 存在问题。事情就是现在。如何使此脚本在 Chromedriver 在后台运行的情况下完成计划任务。我可能做错了设置,但程序手动运行,所以我猜 Windows 计划任务可能有问题?

基本上我只希望脚本每隔 xx:xx 时间在后台运行。

如果需要更多信息,请随时发表评论。