问题标签 [headless-browser]

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 投票
1 回答
2009 浏览

selenium - 如何为搜索引擎优化 PhantomJS 以索引单页应用程序?

我一直在寻找可以在服务器上运行的无头网络浏览器,以便网络爬虫索引单页应用程序。首先,我尝试了 HTMLUnit 和 Selenium (HtmlUnitDriver),但似乎它们都有 xhr 请求的问题。

我发现 PhantomJS 表现更好并且看起来很成熟。PhantomJS 有一个内部网络服务器,所以我决定将它与我的反向代理一起使用。但是我运行了一个基准测试,PhantomJS 达到了 100% 的 cpu 核心,平均页面加载时间约为 4 秒。原因是我必须等待浏览器加载所有资源才能获得正确的结果。这是我的 PhantomJS 脚本:

是否有任何改进可以加快脚本的速度,我应该只使用其 shell 命令运行 PhantomJS 以获得更好的性能,还是这些浏览器有任何替代方案?

0 投票
1 回答
898 浏览

javascript - 如何在 Travis-CI 中以无头模式运行 jasmine 规范?

我正在寻找一些关于如何以无头模式在 travis-ci 上运行我的 jasmine 规范的想法。我希望将 chrome 用于无头浏览器。我按照这篇博客文章设置我的 travis 构建与 chrome 开始,我认为 chrome 正在运行,除了它无关。

所以我对此有一些严重的怀疑

  1. 如果我可以在无头模式下启动 chrome,我几乎可以正常地在 chrome 中做任何可以做的事情。所以说我想让这个无头 chrome 导航到 google.com,或者从我的仓库打开一个html文件,我该怎么做?有这么多关于启动它,然后无事可做。

  2. 在博客文章中提到了正在运行的 jasmine 规范,但没有提到让它运行。至于怎么跑。

我还查阅了 travis-ci 文档以进行 gui 无头测试。有一个与运行茉莉花规格相关的小例子,但我无法从中找出任何东西。

因此,到目前为止,我已经进行了相当广泛的研究,但没有任何结果。有人可以指导我吗?

0 投票
1 回答
1830 浏览

javascript - 使用 casperjs 和 jQuery 填写表单

我正在使用 CasperJS 填写一些表单(输入字段、选择框等)。我已经将 jquery 注入到脚本中,但我不确定如何让它的其余部分工作。

我基本上是在尝试“找到”页面上的单个元素并在其中找到标签并更改值。更改此设置后,我想单击 html 名称为“add_phone”的提交按钮。

这是我到目前为止所拥有的 - 请注意,我正在使用最新版本的 CasperJS 1.1.0-DEV 和 PhantomJS v1.9.1

这在执行时返回以下错误:

代码:

0 投票
2 回答
885 浏览

javascript - 无法验证表单是否已使用 CasperJS 和 jQuery 填写

我有一个表格,我正在尝试使用 CasperJS 填写。代码本身似乎没有任何问题(没有返回错误) - 但我似乎无法“检查”表格是否已填写。

当我转储“first_name”时,它似乎是空白的——即使我已经将它设置为用字符串“Joe”填充——任何想法我做错了什么?

0 投票
1 回答
950 浏览

codeigniter - 通过 PHP (w/CasperJS) 运行命令行

我已经毫无问题地设置了 CasperJS,并且当我通过命令行直接执行时正确配置了一个脚本并正常工作 - 我现在想让我的 PHP Codeigniter 应用程序“与”这个脚本对话,并能够通过执行相同的脚本我的网络应用程序。我正在运行 XAMPP——尽管最终产品将部署在 LAMP 服务器上。

要运行脚本(通过 cmd 成功,我使用以下命令:)

我在 Codeigniter 中使用以下行创建了一个基本控制器,但似乎什么也没发生?谁能建议我做错了什么?

0 投票
2 回答
2247 浏览

php - 有没有办法使用 PhantomJs/CasperJS 或类似的无头浏览器记录动作?

好的,这是我正在尝试寻找解决方案的问题的简要描述。

假设我们有一个在线服务,可以自动执行不同的在线任务(单击链接,导航到页面,从组合框中选择一个选项,最后从地址栏中复制地址)。我要执行这些操作的站点完全在 JavaScript 中,我希望一切都在 PHP 端点我的意思是 php 脚本从用户那里获取参数,将其传递给 JS 服务器并检索结果并将其显示给用户.

这样的场景怎么可能做到?任何想法?我知道这可以通过详细分析 DOM 元素来完成,但它非常耗时且不稳定。只是想知道有什么方法可以像我们用 Selenium 做的那样记录那个动作吗?那 php <-> Headless 浏览器交互呢?

0 投票
1 回答
687 浏览

testing - 在无头浏览器中使用扩展/插件/插件

有没有办法使用加载浏览器扩展/插件/插件的无头浏览器(即 PhantomJS、Selenium)来运行自动测试?

更具体地说,我想在我的代码上模拟广告拦截器(如 Ghostery、ad-block+)的效果,看看它们是否会破坏它。

我看到自 2012 年以来 PhantomJS 不支持 Flash 插件,但想知道是否有办法仍然模拟上述条件。

0 投票
1 回答
1335 浏览

javascript - 如何自动将文件拖放到无头浏览器的窗口中?

我正在构建一个 Web 应用程序,该应用程序涉及将文件从用户系统拖放到浏览器窗口中。

我想使用可用的无头浏览器之一(用于测试驱动开发)自动化用户与 UI 的交互,以便虚拟 DOM 获取文件删除事件。

我花了两个小时寻找开箱即用的解决方案,但没有任何成功。唯一可以自动化的是使用 input[type=file] 上传单个文件。那不是我想要的。

是否有适用于 Mac OS X 或 Linux 的现成解决方案?

0 投票
0 回答
448 浏览

asp.net - 服务器端 ASP.NET 驱动的带逻辑的模板系统(类似于 JsRender)

我正在寻找一个模板库,类似于JsRender,它在.NET 上运行服务器端。

Mustache不是首发,因为它几乎没有逻辑。我们需要功能类似于{{if}}{{else}}、的东西{{for array}},以及在模板中调用自定义函数的能力。

从理论上讲,我可能可以通过读取WatiN或任何其他 .NET 无头浏览器的输出来在服务器上使用 JsRender ......但我想我会把问题放在那里,以防我可以绕过无头浏览器部分。

有任何想法吗?

0 投票
1 回答
676 浏览

c# - 搜索引擎在 ASP.NET 上的 Angular 应用程序中爬行

我将 Angular js 用于我的 Web 前端,并将 ASP.NET 作为我的后端。

有人可以指点我一个无头浏览器,我可以轻松地使用它在服务器端为网络爬虫呈现内容。

我正在查看Awesomium.NETWebKit.NET,两者看起来都像一个 ovekill (对我来说。如果我错了,请纠正我。)

谁能推荐我一些更轻量级的目标来解决 SPA 类型的网络应用程序中的爬虫问题?

提前致谢