问题标签 [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 投票
2 回答
2384 浏览

watin - 支持 javascript/ajax 的 Specflow 无头浏览器测试

我一直在使用WatiN进行 BDD Specflow 测试。它可以完成工作,但速度很慢。我最近遇到了本文建议的SimpleBrowser。SimpleBrowser 比 Watin 快得多。主要缺点是它不支持 javascript,因此不支持 ajax 调用。

我正在寻找一个支持 javascript 的无头浏览器——这样的东西存在吗?是否推荐给Watin?

0 投票
6 回答
25058 浏览

java - 无头浏览器,对 java 有完整的 javascript 支持

我一直在使用 HtmlUnit(开发人员做得很好)作为我以前的一些应用程序的无头浏览器,但是 javascript 支持不适用于我的下一个应用程序将访问的某些网站。

  1. 我听说了 Python 的 QtWebKit 绑定,但我的应用程序将使用 Java,或者是否有用于 WebKit 或 QtWebKit 的 Java 绑定?

  2. 有谁知道一个很好的无头浏览器,用于 Java,完全支持 javascript?

0 投票
1 回答
1574 浏览

headless-browser - 具有良好 Javascript 支持的多线程无头浏览器

我知道许多无头浏览器,但我需要知道那些可以在多个线程中安全使用的浏览器(可以从多个线程创建新实例),因为我正在编写一个网络爬虫。

HtmlUnit 没有可靠的 javascript 支持。

QtWebKit QWebPage 不能从多个线程创建。

PhantomJS 是基于命令行的,必须启动我不想要的新进程。

Awesomium 也不能在多线程中运行。

您是否知道任何具有可靠 javascript 支持并且可以从多个线程毫无问题地运行的无头浏览器?

我不介意编程语言。

0 投票
1 回答
401 浏览

ruby - Using Capybara with Headless in Windows OS

I am using headless gem to run Capybara without opening browser in Linux. Headless uses xvfb. Is there something similar for Windows OS or Mac?

0 投票
3 回答
2408 浏览

c# - 带有 ajax/javascript/proxy 和多线程支持的无头浏览器或浏览器控件?

我在这里查看了很多消息,但还没有找到一个浏览器控件或无头浏览器,它允许我多线程和配置每个线程的代理以及支持 ajax/javascripts。

我试过很远:

  • awesomium - 如果我为我需要运行的每个线程生成一个单独的应用程序,但不是我正在寻找的线程,那么效果很好。
  • simplebrowser - 运行良好,但 js/ajax 操作太弱,无法考虑
  • nhtmlunit - 工作太复杂,无法在 c# 上启动和运行,而且效果不佳
  • watin - 不能实例化私人会话并且不能有每个实例的代理

我也尝试过其他人,但这些是我记得的主要测试。

如果 awesomium 能够做多线程,那将是很棒的,但我听说他们只会在以后的版本中这样做,这是迄今为止最好的。

任何人都可以推荐我其他人进行测试或能够完成上述要求吗?

我的主要目标是在本地网络网站上自动化测试。

更新:

如果我错了,请纠正我,但与 watin 不同,selenium webdriver(将尝试并测试几次)似乎需要一个在应用程序本身之外运行的远程服务器来控制浏览器,仍在寻找替代方案。

更新2:

已经能够使用 chromiumdriver + Selenium 和 c# 进行多线程,但是它在产生多个 cromiumdrivers + 浏览器的基础上只为几个线程使用了难以置信的内存量:

触发多个线程:

铬合金

使这个更轻的其他方法值得用于多个线程吗?

0 投票
1 回答
6808 浏览

maven - 如何正确配置 Selenium Maven 插件以与 Xvfb 一起运行以无头运行

背景:
我将 selenium-server-2.25.0 与 J-Unit 4 结合使用,为我的 GWT 应用程序运行少数 UI 测试场景。在我的 IDE (Netbeans 7.2) 中,我可以右键单击我的项目,选择“测试”,然后看到 Firefox 窗口到处弹出(它们应该如此),Selenium 测试按预期运行。从命令行,我也可以运行mvn integration-test并查看相同的内容。

目标:
我试图让这些测试在 Xvfb 显示器中无头运行,但我似乎无法让它与 Maven 一起使用。我可以事先手动运行export display=:2(:2 是我的 Xvfb 显示器),然后测试在隐形显示器中成功运行。

问题:当我在 pom.xml 中包含此处的完整条目
似乎什么没有改变。我仍然看到 Windows 到处弹出,并且测试不在Xvfb 显示中运行。如果我把它拿出来再次运行,同样的结果。但是,当我将阶段从更改为时,Maven确实抱怨生命周期阶段无效 - 所以我知道它并没有完全忽略它,我正在编辑适当的 pom.xml。<plugin>mvn integration-testpre-integration-testqwertyasdf

谢谢!

0 投票
3 回答
1781 浏览

ruby - 使用 Capybara 或类似工具访问所有加载的资源

我正在寻找一种可能性,可以使用无头浏览器轻松访问和列出网页文档开始加载后加载的所有资源:脚本、图像、样式表等。我对文件的 url、状态码和类型等感兴趣。

想办法以编程方式访问Network选项卡(开发人员工具)为您提供的信息:

在此处输入图像描述

有谁知道 Ruby 库可以帮助我解决这个问题,或者——甚至更好——是否有办法使用 Capybara(–webkit) 来实现这一点?


更新

似乎Poltergeist 有一个名为的方法network_traffic,它可以满足我的需求。不过还没有时间去研究。一旦我这样做,我会报告。

0 投票
2 回答
534 浏览

javascript - 如何检测第三方网站上的 JavaScript 事件

是否有任何方法(实施或仅在理论上)可以检测到第三方站点上分配的 JavaScript 事件和操作?

如果我将 JavaScript 注入到外部站点并希望避免覆盖onsubmit,onclickonfocus其他此类事件,有没有办法检测和扩展此类回调而不是覆盖它们?

我有过的想法:

  • 事先在无头浏览器或 JavaScript 引擎中运行网站以捕获所有已执行的 JavaScript
  • 即时解析 JavaScript 并希望第三方 JavaScript 符合我的解析器的期望
0 投票
0 回答
228 浏览

webkit - 抓取在 URL 中使用井号标签的页面

我正在构建一个工具,用于获取有关网站的一些基本元数据(与 Facebook 在您尝试共享链接时所做的相同):标题、描述和主图像。这对于带有NokogiriBeautifulSoup或许多其他工具的 HTML 页面来说相当简单。

但是,大量使用 ajax 的页面呢?一些网站,尤其是那些使用哈希片段的网站可能会响应Google AJAX 抓取标准并使用_escaped_fragment_,但我认为这不是大多数。

是否有任何使用PhantomJS或无头 Chrome / Webkit 来建立爬网农场的稍微可扩展的解决方案?还是有另一种方法可以无头执行 JS 并提取生成的 HTML?

支持屏幕截图的工具的奖励积分:D

0 投票
5 回答
9104 浏览

python - 如何让 Python、QT 和 Webkit 在无头服务器上工作?

我有 Debian Linux 服务器,可用于各种用途。我希望它能够完成一些我需要定期完成的网络抓取工作。

此代码可在此处找到

对它的简单测试如下所示:

在调用构造函数时,它会因这条消息而死(它被打印到标准输出,而不是未捕获的异常)。

如何在无头服务器上使用 Python (2.7)、QT4 和 Webkit?不需要显示任何内容,因此我可以调整任何设置或任何需要调整的内容。

我已经研究过替代方案,但这是最适合我和我的项目的。如果我必须安装 X 服务器,我怎样才能以最小的开销做到这一点?