node package manager
Painless code sharing. npm Orgs help your team discover, share, and reuse code. Create a free org ยป



Build Status Join the chat at

Run Web Page Test In Plain English


  1. Web browser test in plain English

    Not Javascript nor other language

  2. Test visible sections.

    Not variable, attributes, nor properties


The web browser test script should be like this;

open browser '/login'
enter text 'John' into 'username'
close browser

Instead of;

var webdriver = require('selenium-webdriver'),
    until = webdriver.until;

var driver = new webdriver.Builder().forBrowser('chrome').build();

  .then(function(element) {

... even more javascript here ...



  • Run web browser test in plain English from command line or a file
  • Built-in chromedriver, firefox driver, and reporter
  • No need to run a selenium-server standalone jar file
  • Ability to control execution speed
  • No protractor, just test web page
  • Angular1-friendly, Angular2-friendly, Or, any framework friendly


  • npm install webtest


  1. Run webtest in command line

    webtest (master)$ node index.js 
    webTestDriver is initialized as { browser: { name: 'chrome' }, timeout: 10000 }
    ? > open browser chrome
    ? > go to
  2. Or, write tests in plain English. e.g., my-test-scenario.txt

    My Google
      Test Case 1
        open browser chrome
        go to
        enter 'Allen Kim' into 'Search'
        see 'allenhwkim'
Then, and run the test file

    $ webtest my-test.txt

Core Commands

  • click link <link-text>

  • click <selector>

  • close browser

  • enter text <string> into <selector>

  • go to <url>

  • open browser <browser-name>

  • see "<text>"

  • set window position <left> <top>

  • set window size <width> <height>

  • submit

  • verify element <selector> is disabled

  • verify element <selector> is enabled

  • verify element <selector> is not selected

  • verify element <selector> is not visible

  • verify element <selector> is selected

  • verify element <selector> <style-name> is "<style-value>"

  • verify element <selector> text matches "<string>"

  • verify element <selector> text is "<string>"

  • verify element <selector> is visible

  • verify title matches "<title>"

  • verify title is "<title>"

  • verify url matches <string>

  • wait for page load

  • save value of expression <js-expression> to <variable>

  • save value of element <selector> to <variable>

  • print variable <variable>

  • verify expression <js-expression>


  • If webtest is run on TRAVIS CI environment, the browser is always firefox although user specify the browser in open browser command

Developer Note

$ npm install -g # to install this to run on local environment e.g., $ webtest