This repository contains the source code of a browser automation utlility, which supports in-browser automation with asynchronous chaining feature.
The basic concept of this browser automation utility is to use JavaScript directly manipulate the browser, and it uses the JavaScript library available to the browser to manipulate the browser's DOM.
srccontains the pre-build files of the UI Recorder.testcontains the files for testing the UI recorder.gulpcontains the gulp task files.
Here is the overview for the files under src folder:
browser.jsis it is the entry point for gulp to build browser.js, and it's the core component.async-chain.jssupports the chaining of browser's method call.wait.jssupports waiting for condition to be met.
Here are the steps:
- Install
gulpglobally if you haven't done so. - Run
npm install. - Run
gulpto build thebrowser.js.
browser.js is built with Browserify's standalone option. You can use it with CommonJS, require.js, or include the file directly.
Here is a sample that use window.browser:
var browser = window.browser;
browser.init(); // browser is a singleton, and it needs to be initialized.
browser
.openWindow('https://www.google.com') // The operation is added to the chain, but not executed.
.waitAndClick('#gbqfsa'); // Use css selector.
browser.end(); // Execute all operations in the chain;