7
votes

Comment puis-je contrôler un navigateur (ala sélénium) avec node.js?


3 commentaires

C'est pour prendre des vidéos multiplate-forme. Vous pouvez utiliser Soda sur votre machine


Comment le connecteriez-vous à Localhost: 4444 qui serait mon instance de navigateur Selenium?


@Alfred - Ahhh, Github.com/learnboost/soda/raw/master /examples/google.js Merci .. Pourriez-vous poster cela comme la réponse?


5 Réponses :


6
votes

zombie.js pourrait fonctionner pour vous. Il est sans tête et semble vraiment cool.


4 commentaires

Je ne comprends pas cette chose sans tête. Même si cela fonctionne dans le navigateur de Zombie, cela ne garantit pas que cela fonctionnera sur FF, c'est-à-dire chrome, safari et opéra.


Vous pouvez exécuter les tests qui vérifient la fonctionnalité, puis vérifiez le rendu avec autre chose. J'utilise zombie.js pour accélérer la vérification, mais ne pas le remplacer complètement.


@mcotton Comment vérifiez-vous le rendu? Voulez-vous dire comparer la sortie HTML sur zombie.js avec la sortie sur un navigateur réel?


@ajsie Je pense que cette chose sans tête est davantage de tester la fonctionnalité de votre site Web (par exemple lors d'un grand refacteur) que de tester la compatibilité du navigateur. Au moins c'est pourquoi je m'intéresse.



6
votes

https://github.com/learnboost/soda/raw/ Master / Exemples / 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');
  });


0 commentaires

1
votes

wd est "un client JavaScript nœud.js pour webDriver / selenium 2"


1 commentaires

Tout bon endroit pour trouver du tutoriel? Je ne peux pas exécuter un exemple de wd unique car titre variable est non défini erreur



2
votes

Voici une pure nœud.js wrapper autour de l'API Java pour le webdiver de Selenium:

https: // npmjs.org/package/webdriver-sync

Voici un exemple: xxx

enregistrer cela dans un fichier .js et exécutez-le avec Noeud.

Le module est une pure wrapper, des choses comme le sommeil ou les appels synchrones sont tout à fait possibles. Voici l'interface actuelle du module: xxx

Vous pouvez voir un test d'intégration qui teste ici les capacités complètes ici:

https://github.com/jsdevel/webdriver-sync/blob/master/test/Test/ Intégrations / SmokeIt.js


0 commentaires

4
votes

Il y a maintenant maintenant des liaisons de sélénium pour JavaScript qui fonctionnent avec node.js.

Voici quelques étapes de base pour commencer:

  1. 1 Installez node.js, vous pouvez trouver Le téléchargement ici.
  2. Assurez-vous de vous avoir le Dernier pilote chrome et mettez-le sur votre chemin.
  3. Utilisez NPM Installer selenium-webdiver pour obtenir le module ajouté à votre projet.
  4. Écrivez un test, par exemple:

    var webdiver = nécessite ('selenium-webdriver'); xxx

    i couvre comment faire cela avec des captures d'écran et comment utiliser Moka comme pilote de test dans mon article de blog ici .


0 commentaires