Code Monkey home page Code Monkey logo

minium's Introduction

Minium Build Status

Minium banner

What is Minium

Minium is a framework, developed by Rui Figueira @ VILT, that combines jQuery and Selenium for browser testing and tasks automation. It also provides an interactive console that easily lets you execute Minium instructions, providing you immediate feedback.

In today's JavaScript development landscape, jQuery is the dominant auxiliar library. A major contributor for this state of affairs is JQuery's powerful element selector engine. Now ubiquous in use, it provides a quick and intelligible way to select precisely the elements we want. At the other end of the development spectrum, Selenium is currently the most popular automation framework due to its innovative WebDriver API. Minium combines Selenium's impressive automation capabilities with jQuery's selector engine to produce a simple way to create elaborate automation tasks in the complex web interfaces of today.

Minium can!

Minium can!

You may be thinking: big deal, there are several other tools for browser automation... That's true, but:

  • can those tools access another window (for instance, popup windows) in a easy way? Minium can!
// will look to ALL opened windows to find a text field with label "Username", and fill it with a value
usernameFld = $(wd).window().find(":text").withLabel("Username");
  • can those tools easily access iframes? Minium can!
// will look to ALL frames in the main page to find a text field with label "Username"
usernameFld = $(wd).frame().find(":text").withLabel("Username");
  • can those tools select elements based on their relative position to other elements? Minium can!

Minium position methods

  • can those tools 'speak' and teach you how to use themselves? Minium can!

Minium shows its new Web Console

  • can those tools write their own documentation? Minium can!

Minium writes its own documentation

You can watch all available Minium videos at Youtube playlist.

Quick start

The easiest way to try Minium is to use Minium App, which contains Minium Web Console (you can watch the video 'Minium shows its new Web Console' for a small introducion) and a bundled Jetty server. This way, you can instruct Minium to do almost anything in a browser with a few lines of Javascript.

Before you start

Ensure that the following software is installed:

Run Minium App

To install and run Minium App, just follow these instructions:

  • Download one of the following compressed files:
  • Uncompress it in some folder (e.g. c:\Tools\minium-app)
  • By default, Selenium (and therefore Minium) can run Firefox out of the box. For other browsers, you will need specific drivers. Just download the ones you want to use (see links below) and place the corresponding executable files in drivers folder:
  • To launch Minium, just run one of the following executables:
    • minium-app.exe (in windows)
    • bin\minium-app.bat (also in windows, but this way you can see the stdout)
    • bin\minium-app (linux or mac)

If Minium doesn't open a chrome app when you execute any of those scripts, probably you'll need to indicate where your chrome binary is in minium-prefs.json (edit specify the full Chrome binary path in the chromeBin property).

Give it a try

You're now able to create a web driver. Just go to Web Drivers, pick your prefered browser and name it wd. Then, just type the following code and run it by selecting it and pressing Ctrl+ENTER:

get(wd, "http://www.google.com/ncr");

speak("Hello, I'm Minium, and I'm alive");
speak("Let me highlight google search box");

searchbox = $(wd, ":text").withName("q");
highlight(searchbox);

speak("Minium = Minion + Selenium. Let's find out what is a Minion.");

fill(searchbox, "minion");
sendKeys(searchbox, [ Keys.ENTER ]);

wikipediaResult = $(wd, "h3 a").withText("Minion - Wikipedia, the free encyclopedia");
click(wikipediaResult);

firstParagraph = $(wd, "#mw-content-text p").first();
highlight(firstParagraph);

speak("Wikipedia says: " + firstParagraph.text());

Or try this other script:

get(wd, "https://docs.google.com/spreadsheet/ccc?key=0Al0ulrJIDCUVdEhoSDlRbVZYWUt5ZVJCb1pVb0h1UFE");

var loading = $(wd, "#waffle-loading-screen").visible();

var sheetTabs = $(wd, ".docs-sheet-tab-name");
var numFrames = sheetTabs.size();

for (var time = 0; time < 4 * numFrames; time++) {
  waitWhileNotEmpty(loading);
  var sheetTab = sheetTabs.eq(time % numFrames);
  click(sheetTab);
}

Build Minium

Building Minium is not complicated. Ensure that the following software is installed:

Then, just clone Minium git repository and use Maven to build it:

git clone git://github.com/viltgroup/minium.git
cd minium
mvn install -DskipTests=true

Note: if you really want to run the tests, then make sure you have PhantomJS installed and available in the PATH environment variable. Then just replace mvn install -DskipTests=true by mvn install.

You can then use the built Minium App found at minium-app/target/minium-app.

Documentation

A quick guide on how to use Minium in a Java project or using its Interactive console can be found here:

If you feel that's too simple, check this one:

You can also check the Minium API documentation. For a complete list of allowed methods, check the links below.

Available element selection methods

Available interactions

License

Minium is licensed under Apache 2.0.

minium's People

Contributors

ricardo-lps avatar ruifigueira avatar thorin avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.