【发布时间】:2013-09-03 13:43:32
【问题描述】:
我正在尝试为浏览器自动测试套件和能够抓取的无头浏览器平台列出可能的解决方案。
浏览器测试/抓取:
- Selenium - polyglot 是浏览器自动化的旗舰,Python、Ruby、JavaScript、C#、Haskell 等的绑定,用于 Firefox 的 IDE(作为扩展)用于更快的测试部署。可以充当服务器并具有大量功能。
JAVASCRIPT
- PhantomJS - JavaScript,带有屏幕捕获和自动化的无头测试,使用 Webkit。自 1.8 版起,实现了 Selenium 的 WebDriver API,因此您可以使用任何 WebDriver 绑定,并且测试将与 Selenium 兼容
- SlimerJS - 类似于 PhantomJS,使用 Gecko (Firefox) 而不是 WebKit
- CasperJS - JavaScript,基于 PhantomJS 和 SlimerJS 构建,具有额外的功能
- Ghost Driver - JavaScript 为 PhantomJS 实现 WebDriver Wire Protocol。
- 新 PhantomCSS - CSS 回归测试。一个 CasperJS 模块,用于使用 PhantomJS 和 Resemble.js 自动进行视觉回归测试。
- 新 WebdriverCSS - Webdriver.io 的插件,用于自动化视觉回归测试
- 新 PhantomFlow - 通过测试描述和可视化用户流程。一种实验性的 Web 用户界面测试方法。
- 新 trifleJS - 移植 PhantomJS API 以使用 Internet Explorer 引擎。
- 新 CasperJS IDE (商业)
NODE.JS
- Node-phantom - 弥合 PhantomJS 和 node.js 之间的差距
- WebDriverJs - Selenium Team 为 node.js 绑定 Selenium WebDriver
- WD.js - WebDriver/Selenium 2 的节点模块
- yiewd - 使用最新 Harmony 生成器的 WD.js 包装器!用 yield 摆脱回调金字塔
- ZombieJs - 使用 node.js 进行快速、无头的全栈测试
- NightwatchJs - 使用 Selenium Webdriver 基于 Node JS 的测试解决方案
- Chimera - Chimera:可以做 phantomJS 做的所有事情,但在一个完整的 JS 环境中
- Dalek.js - 通过 Selenium Webdriver 使用 JavaScript 自动进行跨浏览器测试
- Webdriver.io - 使用预定义的 50 多个操作更好地实现 WebDriver 绑定
- Nightmare - 具有高级 API 的电子桥。
- jsdom - 专为网页抓取而设计。一个在 Node.js 中实现的非常轻量级的 DOM,它支持带有 javascript 的页面。
- 新 Puppeteer - 提供高级 API 来控制 Chrome 或 Chromium 的节点库。 Puppeteer 默认无头运行。
网页抓取/挖掘
- Scrapy - Python,主要是一个爬虫/矿工 - 快速,有据可查,可以与 Django Dynamic Scraper 链接以进行良好的挖矿部署,或 Scrapy Cloud 用于 PaaS(无服务器)部署,在终端或服务器独立进程中工作,可以与 Celery 一起使用,构建在 Twisted 之上
- Snailer - node.js 模块,尚未测试。
- Node-Crawler - node.js 模块,尚未测试。
在线工具
-
新 Web Scraping Language - 抓取网络的简单语法
-
新 Online HTTP client - 专门的 SO 答案
-
dead CasperBox - 在线运行 CasperJS 脚本
Android 自动化工具
相关链接和资源
问题:
- 任何纯 Node.js 解决方案或 Nodejs 到 PhanthomJS/CasperJS 模块的实际工作并记录在案?
答案:奇美拉似乎朝那个方向发展,结帐Chimera
-
其他比 Selenium 更容易注入 JavaScript 的解决方案?
-
您知道任何纯 ruby 解决方案吗?
答案:查看由 rjk 使用基于 ruby 的解决方案创建的列表
- 您知道任何相关的技术或解决方案吗?
请随意编辑此问题并根据需要添加内容!感谢您的贡献!
【问题讨论】:
-
不知道那是不是你想要的,但我喜欢那个用于抓取网页、检查 dom 等的模块:npmjs.org/package/crawler。它使用 jsdom,您可以使用 jQuery 作为选择器引擎。这个(使用爬虫)看起来也很有趣:npmjs.org/package/snailer
-
我在 node-phantom 模块上取得了很大的成功。它非常简单,并且有据可查。它确实支持 javascript 注入。
-
我相信你知道 GhostDriver 是一个使用 phantomJS 的 Selenium-Webdriver 的实现
-
您可能还会发现这很有帮助:blog.screen-scraper.com/2010/06/28/…
-
视觉抓取和比较:PhantomCSS 和 PhantomFlow
标签: selenium web-scraping scrapy phantomjs casperjs