Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

selenium-inproc

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

selenium-inproc

In-process Selenium. Wraps the Selenium JAR to provide JavaScript bindings for running Selenium based tests

  • 0.1.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
2
increased by100%
Maintainers
1
Weekly downloads
 
Created
Source

Overview

Most Selenium solutions involve running the Selenium RC Server JAR file (eg java -jar selenium-server-standalone-2.25.0.jar), letting that listen on port 4444, and then sending commands to it over a TCP connection. This is what clients like soda do.

That works great for the most part, but has a few downsides:

  • Requires getting devs to download, setup and run yet another localhost service
  • No support for HTTP proxy (needed if you want to inject test fixture data)
  • Less flexible since only part of Selenium's true functionality is exposed through the service

This project is slighly different. Instead, it uses the same Selenium JAR file, but it loads it in-process using the robust node-java bridge. In effect, this creates "JS bindings" to Selenium based on the Java interface. So we can now do advanced stuff with Selenium without having to convert the entire project to Java.

Most notably, this means support for setting up an HTTP proxy that can be used to mock some or all of the responses from the server. It also means that I don't have to explain to other developers how to launch the Selenium service or create a launchd entry for it. There is no service. They just run the test script, and a browser magically pops open and the tests run.

For now, this project is the metaphorical "tip of the iceberg". I'm integrating Zombie.js, wrapping both that and Selenium under one roof, throwing in a configurable proxy for storing traces of the server->client traffic, replaying said traces, etc. This is the first piece of that puzzle.

Installing

npm install selenium-inproc

During install, npm will trigger the Makefile to download selenium-server-standalone-2.25.0.jar (it's ~31M). Once this finishes, you should be good to go.

Example

This is CoffeeScript, which is directly convertable to JS, so don't be intimidated if it's a new syntax to you. Same thing, just more terse.

Selenium = require('selenium-inproc')
s = new Selenium(
  url: 'http://m-local.wavii.com:3000'
  proxy: "localhost:#{PROXY_PORT}"
)
s.openBrowser () ->
  s.open '/users/auth/facebook', () ->
    s.type 'email', 'username@gmail.com'
    s.type 'pass', 'sekretPassword'
    s.click 'login', () ->

      s.open '/feed/main', () ->
        console.log "Title is #{s.getTitle()}"
        console.log "Attribute is #{s.getAttribute('css=.inline-topic@data-topic-id')}"

        s.close()
        setTimeout(() ->
          console.log "Buh-Bye"
          Proxy.close()
        , 1000)

The commands supported are just the same ones as in the Javadoc, which is pretty much just Selenese.

Here's the exaustive list: src/commands.coffee

Keywords

FAQs

Package last updated on 22 Aug 2012

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc