如何使用node.js控制浏览器(ala Selenium)?

med*_*iev 7 node.js

我听说过苏打水,但似乎需要你注册,而且分钟数是有限的(自由时间/ 200分钟).

有没有人知道是否有一些替代方法来控制浏览器,或者更具体地是在网页上调用JS?

mco*_*ton 5

Zombie.js可能适合你.它无头,看起来很酷.

  • 您可以运行检查功能的测试,然后使用其他内容验证渲染.我使用zombie.js来加速验证,但不能完全替换它. (2认同)

Alf*_*red 5

https://github.com/LearnBoost/soda/raw/master/examples/google.js

/**
 * Module dependencies.
 */

var soda = require('../')
  , assert = require('assert');

var browser = soda.createClient({
    host: 'localhost'
  , port: 4444
  , url: 'http://www.google.com'
  , browser: 'firefox'
});

browser.on('command', function(cmd, args){
  console.log(' \x1b[33m%s\x1b[0m: %s', cmd, args.join(', '));
});

browser
  .chain
  .session()
  .open('/')
  .type('q', 'Hello World')
  .clickAndWait('btnG')
  .getTitle(function(title){
    assert.ok(~title.indexOf('Hello World'), 'Title did not include the query');
  })
  .clickAndWait('link=Advanced search')
  .waitForPageToLoad(2000)
  .assertText('css=#gen-query', 'Hello World')
  .assertAttribute('as_q@value', 'Hello World')
  .testComplete()
  .end(function(err){
    if (err) throw err;
    console.log('done');
  });
Run Code Online (Sandbox Code Playgroud)