问题标签 [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.
selenium - 如何为搜索引擎优化 PhantomJS 以索引单页应用程序?
我一直在寻找可以在服务器上运行的无头网络浏览器,以便网络爬虫索引单页应用程序。首先,我尝试了 HTMLUnit 和 Selenium (HtmlUnitDriver),但似乎它们都有 xhr 请求的问题。
我发现 PhantomJS 表现更好并且看起来很成熟。PhantomJS 有一个内部网络服务器,所以我决定将它与我的反向代理一起使用。但是我运行了一个基准测试,PhantomJS 达到了 100% 的 cpu 核心,平均页面加载时间约为 4 秒。原因是我必须等待浏览器加载所有资源才能获得正确的结果。这是我的 PhantomJS 脚本:
是否有任何改进可以加快脚本的速度,我应该只使用其 shell 命令运行 PhantomJS 以获得更好的性能,还是这些浏览器有任何替代方案?
javascript - 如何在 Travis-CI 中以无头模式运行 jasmine 规范?
我正在寻找一些关于如何以无头模式在 travis-ci 上运行我的 jasmine 规范的想法。我希望将 chrome 用于无头浏览器。我按照这篇博客文章设置我的 travis 构建与 chrome 开始,我认为 chrome 正在运行,除了它无关。
所以我对此有一些严重的怀疑:
如果我可以在无头模式下启动 chrome,我几乎可以正常地在 chrome 中做任何可以做的事情。所以说我想让这个无头 chrome 导航到 google.com,或者从我的仓库打开一个
html
文件,我该怎么做?有这么多关于启动它,然后无事可做。在博客文章中提到了正在运行的 jasmine 规范,但没有提到让它运行。至于怎么跑。
我还查阅了 travis-ci 文档以进行 gui 无头测试。有一个与运行茉莉花规格相关的小例子,但我无法从中找出任何东西。
因此,到目前为止,我已经进行了相当广泛的研究,但没有任何结果。有人可以指导我吗?
javascript - 使用 casperjs 和 jQuery 填写表单
我正在使用 CasperJS 填写一些表单(输入字段、选择框等)。我已经将 jquery 注入到脚本中,但我不确定如何让它的其余部分工作。
我基本上是在尝试“找到”页面上的单个元素并在其中找到标签并更改值。更改此设置后,我想单击 html 名称为“add_phone”的提交按钮。
这是我到目前为止所拥有的 - 请注意,我正在使用最新版本的 CasperJS 1.1.0-DEV 和 PhantomJS v1.9.1
这在执行时返回以下错误:
代码:
javascript - 无法验证表单是否已使用 CasperJS 和 jQuery 填写
我有一个表格,我正在尝试使用 CasperJS 填写。代码本身似乎没有任何问题(没有返回错误) - 但我似乎无法“检查”表格是否已填写。
当我转储“first_name”时,它似乎是空白的——即使我已经将它设置为用字符串“Joe”填充——任何想法我做错了什么?
codeigniter - 通过 PHP (w/CasperJS) 运行命令行
我已经毫无问题地设置了 CasperJS,并且当我通过命令行直接执行时正确配置了一个脚本并正常工作 - 我现在想让我的 PHP Codeigniter 应用程序“与”这个脚本对话,并能够通过执行相同的脚本我的网络应用程序。我正在运行 XAMPP——尽管最终产品将部署在 LAMP 服务器上。
要运行脚本(通过 cmd 成功,我使用以下命令:)
我在 Codeigniter 中使用以下行创建了一个基本控制器,但似乎什么也没发生?谁能建议我做错了什么?
php - 有没有办法使用 PhantomJs/CasperJS 或类似的无头浏览器记录动作?
好的,这是我正在尝试寻找解决方案的问题的简要描述。
假设我们有一个在线服务,可以自动执行不同的在线任务(单击链接,导航到页面,从组合框中选择一个选项,最后从地址栏中复制地址)。我要执行这些操作的站点完全在 JavaScript 中,我希望一切都在 PHP 端点我的意思是 php 脚本从用户那里获取参数,将其传递给 JS 服务器并检索结果并将其显示给用户.
这样的场景怎么可能做到?任何想法?我知道这可以通过详细分析 DOM 元素来完成,但它非常耗时且不稳定。只是想知道有什么方法可以像我们用 Selenium 做的那样记录那个动作吗?那 php <-> Headless 浏览器交互呢?
testing - 在无头浏览器中使用扩展/插件/插件
有没有办法使用加载浏览器扩展/插件/插件的无头浏览器(即 PhantomJS、Selenium)来运行自动测试?
更具体地说,我想在我的代码上模拟广告拦截器(如 Ghostery、ad-block+)的效果,看看它们是否会破坏它。
我看到自 2012 年以来 PhantomJS 不支持 Flash 插件,但想知道是否有办法仍然模拟上述条件。
javascript - 如何自动将文件拖放到无头浏览器的窗口中?
我正在构建一个 Web 应用程序,该应用程序涉及将文件从用户系统拖放到浏览器窗口中。
我想使用可用的无头浏览器之一(用于测试驱动开发)自动化用户与 UI 的交互,以便虚拟 DOM 获取文件删除事件。
我花了两个小时寻找开箱即用的解决方案,但没有任何成功。唯一可以自动化的是使用 input[type=file] 上传单个文件。那不是我想要的。
是否有适用于 Mac OS X 或 Linux 的现成解决方案?
asp.net - 服务器端 ASP.NET 驱动的带逻辑的模板系统(类似于 JsRender)
我正在寻找一个模板库,类似于JsRender,它在.NET 上运行服务器端。
Mustache不是首发,因为它几乎没有逻辑。我们需要功能类似于{{if}}
、{{else}}
、的东西{{for array}}
,以及在模板中调用自定义函数的能力。
从理论上讲,我可能可以通过读取WatiN或任何其他 .NET 无头浏览器的输出来在服务器上使用 JsRender ......但我想我会把问题放在那里,以防我可以绕过无头浏览器部分。
有任何想法吗?
c# - 搜索引擎在 ASP.NET 上的 Angular 应用程序中爬行
我将 Angular js 用于我的 Web 前端,并将 ASP.NET 作为我的后端。
有人可以指点我一个无头浏览器,我可以轻松地使用它在服务器端为网络爬虫呈现内容。
我正在查看Awesomium.NET和WebKit.NET,两者看起来都像一个 ovekill (对我来说。如果我错了,请纠正我。)
谁能推荐我一些更轻量级的目标来解决 SPA 类型的网络应用程序中的爬虫问题?
提前致谢