Configure the run configuration to pass in data file path as argument
+
Create a test script data file
+
+
+
Create data file that hosts configuration, execution list and test cases.
+
Refer wiki on how to create test case file, which has the required format for execution.
+
+
+
Launch a selenium grid server with browser instances
+
+
+
Refer Examples - Grid_Script for launching selenium grid with Firefox and Chrome instances.
+
+
+
Run the Main class using the configuration defined in step 4
+
Verify the test execution report generated by the framework
+
+
+
Result report is generated in reports folder
+
+
+
+Framework Capabilities
+
+
+
+Element Location:
+
+
+
Name
+
TagName
+
CSS
+
XPATH
+
ID
+
LinkText
+
PartialLinkText
+
+
+
+
Available Actions:
+
+
+
+
General Functions:
+
+
+
+Wait - Waits for user defined seconds
+
+Javascript - Executes a JS statement
+
+Run - Runs another test case as boxed within an execution
+
+SwitchTo - Switches to another window
+
+SwitchToParent - Jumps back to parent window
+
+Evaluate - Evaluates a mathematical expression (Uses Browsers JS Runtime) and returns the value
+
+
+
+
Web Element Functions:
+
+
+
+Input - Send string value to a web element
+
+Click - Click on a web element
+
+Right Click - Right-Click on a web element
+
+Clear - Clear a web element
+
+Send - Send special key combinations (Ctrl+C, Enter, etc)
+ * Hover - Hover over a web element
+
+Drag And Drop - Drag and drop a web element to another web element
+ * Count - Count the number of web elements
+
+isDisplayed | isPresent - Verify if a web element is displayed
+ * isEmpty - Verify if a web element is empty
+
+isNotDisplayed | isNotPresent - Verify if a web element is not displayed
+
Check-Box Specific Functions
+
+
+
+isChecked - Verify if the check box is checked
+
+isNotChecked - Verify if the check box is not checked
+
+
+
Select-Box Specific Functions
+
+
+
+SelectByText - Select option by text
+
+SelectByValue - Select option by value
+
+SelectByIndex - Select option by index
+
+
+
+GetAttribute - Get the specified attribute of a web element
+
+
+
+
Run-Time Utility Functions
+
+
+
+Save - Save Text or Value attribute of an element to run-time variable
+
+Match - Match the Text or Value of an element to stored run-time variable
+
+Equal - To check equality of 2 variables
+
+NotEqual - To check inequality of 2 variables
+
+Print - Prints out text, value or string to console
+
+
+
+
Assertion Functions
+
+
+
+Assert [Default] - Default assert without any parameters will assert Text of an element
+ * Assert [URL Over-ride] - URL Over-ride will assert the URL of the page
+
+Assert [Misc Param Over-ride] - Over-ridden assert will assert the Parameter value of an element
+
+
+
+
Driver Functions
+
+
+
+Close - Closes the current window
+
+Quit - Quits the browser instance
+
+Open - Open a new browser instance
+
+Open/Get - Open a new browser instance and get the URL
+
+Get - Get a URL
+
+AcceptAlert - Accept an alert box
+
+
+
+
+
+Internal Working
+
+
+
Reader package reads the data file and extracts the test execution configuration, test execution management and test cases.
+
Executor package executes the scripts and provides interim results
+
Reported package prints the results in user readable format (HTML document)
+
+Dependencies
+
+
+
jxl.jar - Reading and writing Excel files
+
selenium-server-standalone - v2.42.2
+
+Road Map
+
+
+
Adding advanced selenium functions - In-Progress
+
Better Errors
+
Email configuration for report delivery
+
Basic selenium functions
+
Reporting
+
Using results from execution module in reporting module
+
Take screenshot in case of step failure
+
Adding assertion checks
+
Allow providing data file path from command line / run config
+
Better Reports
+
Error focus in screenshot
+
+Change Log
+
+
+
+14/07/2014 :
+
+
+
[New Feature] : Evaluate functionality
+
[New Feature] : Print functionality
+
[New Feature] : Window handling
+
[Enhancement] : Attribute assertions
+
[Enhancement] : Code refactored
+
[Bug Fix] : Catch error of empty execution and report hashes
+
[Bug Fix] : Catch error of AJAX listener for sites not using jQuery for XHR
+25/06/2014 : Added select box option saving, assert can also use run-time variable data, bug fix in run-time lookup
+
+18/06/2014 : Error handling for missing parameter, option to skip a test step
+
+13/06/2014 : Added selenium functions for Select box, reworked error filename, reword error message in html report, added functionality to run command to allow step removal from front & back
+
+12/06/2014 : Added total test cases description while reading, fixed multiple module detail tab report bug, sorting test cases in report, fixed click - Scroll into view only if element out of viewport
+
+11/06/2014 : Refactored code, added Save/Match functionality, added error focus on web element, uses Selenium-2.42.2
+
+10/06/2014 : The result report now organize the test cases in accordians with status as the header color, reworked URL assert
+
+06/06/2014 : Created JAR executable, added Selenium Grid by default, AJAX listeners, command line argument for Data file
+
+04/06/2014 : Added more selenium funtions, restructured error handler for Action - Assert
+
+02/06/2014 : Restructured executor to remove if/elsifs and use switch for action types.
+
+Undocumented :Reworked Reading and Executing for allowing user to reuse existing test case within another test case.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/javascripts/main.js b/javascripts/main.js
new file mode 100644
index 0000000..d8135d3
--- /dev/null
+++ b/javascripts/main.js
@@ -0,0 +1 @@
+console.log('This would be the main JS file.');
diff --git a/params.json b/params.json
new file mode 100644
index 0000000..935786f
--- /dev/null
+++ b/params.json
@@ -0,0 +1 @@
+{"name":"Automatr","tagline":"A web application automation testing framework using data file for driving test scripts","body":"# Automatr #\r\n\r\nAn automation framework for performing automation testing of Web Applications using Selenium.\r\n\r\n__Version__ : 0.0.10\r\n\r\n## How to Use ##\r\n### Direct execution ###\r\n1. Create a test script data file\r\n * Create data file that hosts configuration, execution list and test cases.\r\n * Refer wiki on how to create test case file, which has the required format for execution.\r\n2. Launch a selenium grid server with browser instances\r\n * Refer Examples - Grid_Script for launching selenium grid with Firefox and Chrome instances.\r\n3. Execute the JAR file\r\n * Provide data file path as the first argument\r\n4. Verify the test execution report generated by the framework\r\n * Result report is generated in reports folder\r\n\r\n### Build and Run ###\r\n1. Download Source zip or git clone the repository\r\n2. Import into your JAVA work-space\r\n3. Configure the build path to include dependencies\r\n * [JExcelAPI](http://jexcelapi.sourceforge.net/)\r\n * [Selenium Server Standalone v2.42.2](http://selenium-release.storage.googleapis.com/2.42/selenium-server-standalone-2.42.2.jar)\r\n * __(Optional)__ [Chrome Driver](http://chromedriver.storage.googleapis.com/index.html?path=2.10/)\r\n4. Configure the run configuration to pass in data file path as argument\r\n5. Create a test script data file\r\n * Create data file that hosts configuration, execution list and test cases.\r\n * Refer wiki on how to create test case file, which has the required format for execution.\r\n6. Launch a selenium grid server with browser instances\r\n * Refer Examples - Grid_Script for launching selenium grid with Firefox and Chrome instances.\r\n7. Run the Main class using the configuration defined in step 4\r\n8. Verify the test execution report generated by the framework\r\n * Result report is generated in reports folder\r\n\r\n***\r\n\r\n## Framework Capabilities ##\r\n* **Element Location:**\r\n 1. Name\r\n 2. TagName\r\n 3. CSS\r\n 4. XPATH\r\n 5. ID\r\n 6. LinkText\r\n 7. PartialLinkText\r\n* **Available Actions:**\r\n\t1. **General Functions:**\r\n\t\t* `Wait` - Waits for user defined seconds\r\n\t\t* `Javascript` - Executes a JS statement\r\n\t\t* `Run` - Runs another test case as boxed within an execution\r\n\t\t* `SwitchTo` - Switches to another window\r\n\t\t* `SwitchToParent` - Jumps back to parent window\r\n\t\t* `Evaluate` - Evaluates a mathematical expression (Uses Browsers JS Runtime) and returns the value\r\n\t\r\n\t2. **Web Element Functions:**\r\n\t\t* `Input` - Send string value to a web element\r\n\t\t* `Click` - Click on a web element\r\n\t\t* `Right Click` - Right-Click on a web element\r\n\t\t* `Clear` - Clear a web element\r\n\t\t* `Send` - Send special key combinations (Ctrl+C, Enter, etc)\r\n * `Hover` - Hover over a web element\r\n\t\t* `Drag And Drop` - Drag and drop a web element to another web element\r\n * `Count` - Count the number of web elements\r\n\t\t* `isDisplayed` | `isPresent` - Verify if a web element is displayed\r\n * `isEmpty` - Verify if a web element is empty\r\n\t\t* `isNotDisplayed` | `isNotPresent` - Verify if a web element is not displayed\r\n\t\t* Check-Box Specific Functions\r\n\t\t\t* `isChecked` - Verify if the check box is checked\r\n\t\t\t* `isNotChecked` - Verify if the check box is not checked\r\n\t\t* Select-Box Specific Functions\r\n\t\t\t* `SelectByText` - Select option by text\r\n\t\t\t* `SelectByValue` - Select option by value \r\n\t\t\t* `SelectByIndex` - Select option by index\r\n\t\t* `GetAttribute` - Get the specified attribute of a web element\r\n\t\t\r\n\t3. **Run-Time Utility Functions**\r\n\t\t* `Save` - Save Text or Value attribute of an element to run-time variable\r\n\t\t* `Match` - Match the Text or Value of an element to stored run-time variable\r\n\t\t* `Equal` - To check equality of 2 variables\r\n\t\t* `NotEqual` - To check inequality of 2 variables\r\n\t\t* `Print` - Prints out text, value or string to console\r\n\t\r\n\t4. **Assertion Functions**\r\n\t\t* `Assert` [Default] - Default assert without any parameters will assert `Text` of an element\r\n * `Assert` [URL Over-ride] - URL Over-ride will assert the URL of the page\r\n\t\t* `Assert` [Misc Param Over-ride] - Over-ridden assert will assert the `Parameter` value of an element\r\n\r\n\t5. **Driver Functions**\r\n\t\t* `Close` - Closes the current window\r\n\t\t* `Quit` - Quits the browser instance\r\n\t\t* `Open` - Open a new browser instance\r\n\t\t* `Open/Get` - Open a new browser instance and get the URL\r\n\t\t* `Get` - Get a URL\r\n\t\t* `AcceptAlert` - Accept an alert box\r\n\r\n***\r\n## Internal Working ##\r\n* Reader package reads the data file and extracts the test execution configuration, test execution management and test cases.\r\n* Executor package executes the scripts and provides interim results\r\n* Reported package prints the results in user readable format (HTML document)\r\n\r\n## Dependencies ##\r\n* jxl.jar - Reading and writing Excel files\r\n* selenium-server-standalone - v2.42.2\r\n\r\n***\r\n\r\n## Road Map ##\r\n* Adding advanced selenium functions - In-Progress\r\n* Better Errors\r\n* Email configuration for report delivery\r\n* ~~Basic selenium functions~~\r\n* ~~Reporting~~\r\n* ~~Using results from execution module in reporting module~~\r\n* ~~Take screenshot in case of step failure~~\r\n* ~~Adding assertion checks~~\r\n* ~~Allow providing data file path from command line / run config~~\r\n* ~~Better Reports~~\r\n* ~~Error focus in screenshot~~\r\n\r\n***\r\n\r\n## Change Log ##\r\n* __14/07/2014__ : \r\n\t* [New Feature] : Evaluate functionality\r\n\t* [New Feature] : Print functionality\r\n\t* [New Feature] : Window handling\r\n\t* [Enhancement] : Attribute assertions\r\n\t* [Enhancement] : Code refactored\r\n\t* [Bug Fix] : Catch error of empty execution and report hashes\r\n\t* [Bug Fix] : Catch error of AJAX listener for sites not using jQuery for XHR\r\n* __27/06/2014__ : Refactored selenium file code, added 'Equal','isChecked','isNotChecked', fixed javascript action\r\n* __25/06/2014__ : Added select box option saving, assert can also use run-time variable data, bug fix in run-time lookup\r\n* __18/06/2014__ : Error handling for missing parameter, option to skip a test step\r\n* __13/06/2014__ : Added selenium functions for Select box, reworked error filename, reword error message in html report, added functionality to run command to allow step removal from front & back\r\n* __12/06/2014__ : Added total test cases description while reading, fixed multiple module detail tab report bug, sorting test cases in report, fixed click - Scroll into view only if element out of viewport\r\n* __11/06/2014__ : Refactored code, added Save/Match functionality, added error focus on web element, uses Selenium-2.42.2\r\n* __10/06/2014__ : The result report now organize the test cases in accordians with status as the header color, reworked URL assert\r\n* __06/06/2014__ : Created JAR executable, added Selenium Grid by default, AJAX listeners, command line argument for Data file\r\n* __04/06/2014__ : Added more selenium funtions, restructured error handler for Action - Assert\r\n* __02/06/2014__ : Restructured executor to remove if/elsifs and use switch for action types. \r\n* __Undocumented__ :Reworked Reading and Executing for allowing user to reuse existing test case within another test case.","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file
diff --git a/stylesheets/pygment_trac.css b/stylesheets/pygment_trac.css
new file mode 100644
index 0000000..e65cedf
--- /dev/null
+++ b/stylesheets/pygment_trac.css
@@ -0,0 +1,70 @@
+.highlight .hll { background-color: #ffffcc }
+.highlight { background: #f0f3f3; }
+.highlight .c { color: #0099FF; font-style: italic } /* Comment */
+.highlight .err { color: #AA0000; background-color: #FFAAAA } /* Error */
+.highlight .k { color: #006699; font-weight: bold } /* Keyword */
+.highlight .o { color: #555555 } /* Operator */
+.highlight .cm { color: #0099FF; font-style: italic } /* Comment.Multiline */
+.highlight .cp { color: #009999 } /* Comment.Preproc */
+.highlight .c1 { color: #0099FF; font-style: italic } /* Comment.Single */
+.highlight .cs { color: #0099FF; font-weight: bold; font-style: italic } /* Comment.Special */
+.highlight .gd { background-color: #FFCCCC; border: 1px solid #CC0000 } /* Generic.Deleted */
+.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .gr { color: #FF0000 } /* Generic.Error */
+.highlight .gh { color: #003300; font-weight: bold } /* Generic.Heading */
+.highlight .gi { background-color: #CCFFCC; border: 1px solid #00CC00 } /* Generic.Inserted */
+.highlight .go { color: #AAAAAA } /* Generic.Output */
+.highlight .gp { color: #000099; font-weight: bold } /* Generic.Prompt */
+.highlight .gs { font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #003300; font-weight: bold } /* Generic.Subheading */
+.highlight .gt { color: #99CC66 } /* Generic.Traceback */
+.highlight .kc { color: #006699; font-weight: bold } /* Keyword.Constant */
+.highlight .kd { color: #006699; font-weight: bold } /* Keyword.Declaration */
+.highlight .kn { color: #006699; font-weight: bold } /* Keyword.Namespace */
+.highlight .kp { color: #006699 } /* Keyword.Pseudo */
+.highlight .kr { color: #006699; font-weight: bold } /* Keyword.Reserved */
+.highlight .kt { color: #007788; font-weight: bold } /* Keyword.Type */
+.highlight .m { color: #FF6600 } /* Literal.Number */
+.highlight .s { color: #CC3300 } /* Literal.String */
+.highlight .na { color: #330099 } /* Name.Attribute */
+.highlight .nb { color: #336666 } /* Name.Builtin */
+.highlight .nc { color: #00AA88; font-weight: bold } /* Name.Class */
+.highlight .no { color: #336600 } /* Name.Constant */
+.highlight .nd { color: #9999FF } /* Name.Decorator */
+.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.highlight .ne { color: #CC0000; font-weight: bold } /* Name.Exception */
+.highlight .nf { color: #CC00FF } /* Name.Function */
+.highlight .nl { color: #9999FF } /* Name.Label */
+.highlight .nn { color: #00CCFF; font-weight: bold } /* Name.Namespace */
+.highlight .nt { color: #330099; font-weight: bold } /* Name.Tag */
+.highlight .nv { color: #003333 } /* Name.Variable */
+.highlight .ow { color: #000000; font-weight: bold } /* Operator.Word */
+.highlight .w { color: #bbbbbb } /* Text.Whitespace */
+.highlight .mf { color: #FF6600 } /* Literal.Number.Float */
+.highlight .mh { color: #FF6600 } /* Literal.Number.Hex */
+.highlight .mi { color: #FF6600 } /* Literal.Number.Integer */
+.highlight .mo { color: #FF6600 } /* Literal.Number.Oct */
+.highlight .sb { color: #CC3300 } /* Literal.String.Backtick */
+.highlight .sc { color: #CC3300 } /* Literal.String.Char */
+.highlight .sd { color: #CC3300; font-style: italic } /* Literal.String.Doc */
+.highlight .s2 { color: #CC3300 } /* Literal.String.Double */
+.highlight .se { color: #CC3300; font-weight: bold } /* Literal.String.Escape */
+.highlight .sh { color: #CC3300 } /* Literal.String.Heredoc */
+.highlight .si { color: #AA0000 } /* Literal.String.Interpol */
+.highlight .sx { color: #CC3300 } /* Literal.String.Other */
+.highlight .sr { color: #33AAAA } /* Literal.String.Regex */
+.highlight .s1 { color: #CC3300 } /* Literal.String.Single */
+.highlight .ss { color: #FFCC33 } /* Literal.String.Symbol */
+.highlight .bp { color: #336666 } /* Name.Builtin.Pseudo */
+.highlight .vc { color: #003333 } /* Name.Variable.Class */
+.highlight .vg { color: #003333 } /* Name.Variable.Global */
+.highlight .vi { color: #003333 } /* Name.Variable.Instance */
+.highlight .il { color: #FF6600 } /* Literal.Number.Integer.Long */
+
+.type-csharp .highlight .k { color: #0000FF }
+.type-csharp .highlight .kt { color: #0000FF }
+.type-csharp .highlight .nf { color: #000000; font-weight: normal }
+.type-csharp .highlight .nc { color: #2B91AF }
+.type-csharp .highlight .nn { color: #000000 }
+.type-csharp .highlight .s { color: #A31515 }
+.type-csharp .highlight .sc { color: #A31515 }
diff --git a/stylesheets/stylesheet.css b/stylesheets/stylesheet.css
new file mode 100644
index 0000000..7a08b01
--- /dev/null
+++ b/stylesheets/stylesheet.css
@@ -0,0 +1,423 @@
+/*******************************************************************************
+Slate Theme for GitHub Pages
+by Jason Costello, @jsncostello
+*******************************************************************************/
+
+@import url(pygment_trac.css);
+
+/*******************************************************************************
+MeyerWeb Reset
+*******************************************************************************/
+
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, embed,
+figure, figcaption, footer, header, hgroup,
+menu, nav, output, ruby, section, summary,
+time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font: inherit;
+ vertical-align: baseline;
+}
+
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section {
+ display: block;
+}
+
+ol, ul {
+ list-style: none;
+}
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+/*******************************************************************************
+Theme Styles
+*******************************************************************************/
+
+body {
+ box-sizing: border-box;
+ color:#373737;
+ background: #212121;
+ font-size: 16px;
+ font-family: 'Myriad Pro', Calibri, Helvetica, Arial, sans-serif;
+ line-height: 1.5;
+ -webkit-font-smoothing: antialiased;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ margin: 10px 0;
+ font-weight: 700;
+ color:#222222;
+ font-family: 'Lucida Grande', 'Calibri', Helvetica, Arial, sans-serif;
+ letter-spacing: -1px;
+}
+
+h1 {
+ font-size: 36px;
+ font-weight: 700;
+}
+
+h2 {
+ padding-bottom: 10px;
+ font-size: 32px;
+ background: url('../images/bg_hr.png') repeat-x bottom;
+}
+
+h3 {
+ font-size: 24px;
+}
+
+h4 {
+ font-size: 21px;
+}
+
+h5 {
+ font-size: 18px;
+}
+
+h6 {
+ font-size: 16px;
+}
+
+p {
+ margin: 10px 0 15px 0;
+}
+
+footer p {
+ color: #f2f2f2;
+}
+
+a {
+ text-decoration: none;
+ color: #007edf;
+ text-shadow: none;
+
+ transition: color 0.5s ease;
+ transition: text-shadow 0.5s ease;
+ -webkit-transition: color 0.5s ease;
+ -webkit-transition: text-shadow 0.5s ease;
+ -moz-transition: color 0.5s ease;
+ -moz-transition: text-shadow 0.5s ease;
+ -o-transition: color 0.5s ease;
+ -o-transition: text-shadow 0.5s ease;
+ -ms-transition: color 0.5s ease;
+ -ms-transition: text-shadow 0.5s ease;
+}
+
+a:hover, a:focus {text-decoration: underline;}
+
+footer a {
+ color: #F2F2F2;
+ text-decoration: underline;
+}
+
+em {
+ font-style: italic;
+}
+
+strong {
+ font-weight: bold;
+}
+
+img {
+ position: relative;
+ margin: 0 auto;
+ max-width: 739px;
+ padding: 5px;
+ margin: 10px 0 10px 0;
+ border: 1px solid #ebebeb;
+
+ box-shadow: 0 0 5px #ebebeb;
+ -webkit-box-shadow: 0 0 5px #ebebeb;
+ -moz-box-shadow: 0 0 5px #ebebeb;
+ -o-box-shadow: 0 0 5px #ebebeb;
+ -ms-box-shadow: 0 0 5px #ebebeb;
+}
+
+p img {
+ display: inline;
+ margin: 0;
+ padding: 0;
+ vertical-align: middle;
+ text-align: center;
+ border: none;
+}
+
+pre, code {
+ width: 100%;
+ color: #222;
+ background-color: #fff;
+
+ font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
+ font-size: 14px;
+
+ border-radius: 2px;
+ -moz-border-radius: 2px;
+ -webkit-border-radius: 2px;
+}
+
+pre {
+ width: 100%;
+ padding: 10px;
+ box-shadow: 0 0 10px rgba(0,0,0,.1);
+ overflow: auto;
+}
+
+code {
+ padding: 3px;
+ margin: 0 3px;
+ box-shadow: 0 0 10px rgba(0,0,0,.1);
+}
+
+pre code {
+ display: block;
+ box-shadow: none;
+}
+
+blockquote {
+ color: #666;
+ margin-bottom: 20px;
+ padding: 0 0 0 20px;
+ border-left: 3px solid #bbb;
+}
+
+
+ul, ol, dl {
+ margin-bottom: 15px
+}
+
+ul {
+ list-style: inside;
+ padding-left: 20px;
+}
+
+ol {
+ list-style: decimal inside;
+ padding-left: 20px;
+}
+
+dl dt {
+ font-weight: bold;
+}
+
+dl dd {
+ padding-left: 20px;
+ font-style: italic;
+}
+
+dl p {
+ padding-left: 20px;
+ font-style: italic;
+}
+
+hr {
+ height: 1px;
+ margin-bottom: 5px;
+ border: none;
+ background: url('../images/bg_hr.png') repeat-x center;
+}
+
+table {
+ border: 1px solid #373737;
+ margin-bottom: 20px;
+ text-align: left;
+ }
+
+th {
+ font-family: 'Lucida Grande', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+ padding: 10px;
+ background: #373737;
+ color: #fff;
+ }
+
+td {
+ padding: 10px;
+ border: 1px solid #373737;
+ }
+
+form {
+ background: #f2f2f2;
+ padding: 20px;
+}
+
+/*******************************************************************************
+Full-Width Styles
+*******************************************************************************/
+
+.outer {
+ width: 100%;
+}
+
+.inner {
+ position: relative;
+ max-width: 640px;
+ padding: 20px 10px;
+ margin: 0 auto;
+}
+
+#forkme_banner {
+ display: block;
+ position: absolute;
+ top:0;
+ right: 10px;
+ z-index: 10;
+ padding: 10px 50px 10px 10px;
+ color: #fff;
+ background: url('../images/blacktocat.png') #0090ff no-repeat 95% 50%;
+ font-weight: 700;
+ box-shadow: 0 0 10px rgba(0,0,0,.5);
+ border-bottom-left-radius: 2px;
+ border-bottom-right-radius: 2px;
+}
+
+#header_wrap {
+ background: #212121;
+ background: -moz-linear-gradient(top, #373737, #212121);
+ background: -webkit-linear-gradient(top, #373737, #212121);
+ background: -ms-linear-gradient(top, #373737, #212121);
+ background: -o-linear-gradient(top, #373737, #212121);
+ background: linear-gradient(top, #373737, #212121);
+}
+
+#header_wrap .inner {
+ padding: 50px 10px 30px 10px;
+}
+
+#project_title {
+ margin: 0;
+ color: #fff;
+ font-size: 42px;
+ font-weight: 700;
+ text-shadow: #111 0px 0px 10px;
+}
+
+#project_tagline {
+ color: #fff;
+ font-size: 24px;
+ font-weight: 300;
+ background: none;
+ text-shadow: #111 0px 0px 10px;
+}
+
+#downloads {
+ position: absolute;
+ width: 210px;
+ z-index: 10;
+ bottom: -40px;
+ right: 0;
+ height: 70px;
+ background: url('../images/icon_download.png') no-repeat 0% 90%;
+}
+
+.zip_download_link {
+ display: block;
+ float: right;
+ width: 90px;
+ height:70px;
+ text-indent: -5000px;
+ overflow: hidden;
+ background: url(../images/sprite_download.png) no-repeat bottom left;
+}
+
+.tar_download_link {
+ display: block;
+ float: right;
+ width: 90px;
+ height:70px;
+ text-indent: -5000px;
+ overflow: hidden;
+ background: url(../images/sprite_download.png) no-repeat bottom right;
+ margin-left: 10px;
+}
+
+.zip_download_link:hover {
+ background: url(../images/sprite_download.png) no-repeat top left;
+}
+
+.tar_download_link:hover {
+ background: url(../images/sprite_download.png) no-repeat top right;
+}
+
+#main_content_wrap {
+ background: #f2f2f2;
+ border-top: 1px solid #111;
+ border-bottom: 1px solid #111;
+}
+
+#main_content {
+ padding-top: 40px;
+}
+
+#footer_wrap {
+ background: #212121;
+}
+
+
+
+/*******************************************************************************
+Small Device Styles
+*******************************************************************************/
+
+@media screen and (max-width: 480px) {
+ body {
+ font-size:14px;
+ }
+
+ #downloads {
+ display: none;
+ }
+
+ .inner {
+ min-width: 320px;
+ max-width: 480px;
+ }
+
+ #project_title {
+ font-size: 32px;
+ }
+
+ h1 {
+ font-size: 28px;
+ }
+
+ h2 {
+ font-size: 24px;
+ }
+
+ h3 {
+ font-size: 21px;
+ }
+
+ h4 {
+ font-size: 18px;
+ }
+
+ h5 {
+ font-size: 14px;
+ }
+
+ h6 {
+ font-size: 12px;
+ }
+
+ code, pre {
+ min-width: 320px;
+ max-width: 480px;
+ font-size: 11px;
+ }
+
+}
From 8daca106dd17c796654ade6b1591118daeae296f Mon Sep 17 00:00:00 2001
From: Vageesh Bhasin
Date: Tue, 15 Jul 2014 15:01:40 +0530
Subject: [PATCH 2/8] Create gh-pages branch via GitHub
---
index.html | 36 ++++++++++++++++++++----------------
params.json | 2 +-
2 files changed, 21 insertions(+), 17 deletions(-)
diff --git a/index.html b/index.html
index 8c88662..67bc95f 100644
--- a/index.html
+++ b/index.html
@@ -115,13 +115,13 @@
Element Location:
-
Name
-
TagName
-
CSS
-
XPATH
-
ID
-
LinkText
-
PartialLinkText
+
Name
+
TagName
+
CSS
+
XPATH
+
ID
+
LinkText
+
PartialLinkText
@@ -159,14 +159,17 @@
Clear - Clear a web element
-Send - Send special key combinations (Ctrl+C, Enter, etc)
- * Hover - Hover over a web element
+Send - Send special key combinations like Ctrl+C, Enter, etc.
-Drag And Drop - Drag and drop a web element to another web element
- * Count - Count the number of web elements
+Hover - Hover over a web element
-isDisplayed | isPresent - Verify if a web element is displayed
- * isEmpty - Verify if a web element is empty
+Drag And Drop - Drag and drop a web element to another web element
+
+Count - Count the number of web elements
+
+isDisplayed | isPresent - Verify if a web element is displayed
+
+isEmpty - Verify if a web element is empty
isNotDisplayed | isNotPresent - Verify if a web element is not displayed
Check-Box Specific Functions
@@ -214,8 +217,9 @@
-Assert [Default] - Default assert without any parameters will assert Text of an element
- * Assert [URL Over-ride] - URL Over-ride will assert the URL of the page
+Assert [Default] - Default assert without any parameters will assert Text of an element
+
+Assert [URL Over-ride] - URL Over-ride will assert the URL of the page
Assert [Misc Param Over-ride] - Over-ridden assert will assert the Parameter value of an element
@@ -306,7 +310,7 @@
02/06/2014 : Restructured executor to remove if/elsifs and use switch for action types.
-Undocumented :Reworked Reading and Executing for allowing user to reuse existing test case within another test case.
+Undocumented : Reworked Reading and Executing for allowing user to reuse existing test case within another test case.
diff --git a/params.json b/params.json
index 935786f..33f8edc 100644
--- a/params.json
+++ b/params.json
@@ -1 +1 @@
-{"name":"Automatr","tagline":"A web application automation testing framework using data file for driving test scripts","body":"# Automatr #\r\n\r\nAn automation framework for performing automation testing of Web Applications using Selenium.\r\n\r\n__Version__ : 0.0.10\r\n\r\n## How to Use ##\r\n### Direct execution ###\r\n1. Create a test script data file\r\n * Create data file that hosts configuration, execution list and test cases.\r\n * Refer wiki on how to create test case file, which has the required format for execution.\r\n2. Launch a selenium grid server with browser instances\r\n * Refer Examples - Grid_Script for launching selenium grid with Firefox and Chrome instances.\r\n3. Execute the JAR file\r\n * Provide data file path as the first argument\r\n4. Verify the test execution report generated by the framework\r\n * Result report is generated in reports folder\r\n\r\n### Build and Run ###\r\n1. Download Source zip or git clone the repository\r\n2. Import into your JAVA work-space\r\n3. Configure the build path to include dependencies\r\n * [JExcelAPI](http://jexcelapi.sourceforge.net/)\r\n * [Selenium Server Standalone v2.42.2](http://selenium-release.storage.googleapis.com/2.42/selenium-server-standalone-2.42.2.jar)\r\n * __(Optional)__ [Chrome Driver](http://chromedriver.storage.googleapis.com/index.html?path=2.10/)\r\n4. Configure the run configuration to pass in data file path as argument\r\n5. Create a test script data file\r\n * Create data file that hosts configuration, execution list and test cases.\r\n * Refer wiki on how to create test case file, which has the required format for execution.\r\n6. Launch a selenium grid server with browser instances\r\n * Refer Examples - Grid_Script for launching selenium grid with Firefox and Chrome instances.\r\n7. Run the Main class using the configuration defined in step 4\r\n8. Verify the test execution report generated by the framework\r\n * Result report is generated in reports folder\r\n\r\n***\r\n\r\n## Framework Capabilities ##\r\n* **Element Location:**\r\n 1. Name\r\n 2. TagName\r\n 3. CSS\r\n 4. XPATH\r\n 5. ID\r\n 6. LinkText\r\n 7. PartialLinkText\r\n* **Available Actions:**\r\n\t1. **General Functions:**\r\n\t\t* `Wait` - Waits for user defined seconds\r\n\t\t* `Javascript` - Executes a JS statement\r\n\t\t* `Run` - Runs another test case as boxed within an execution\r\n\t\t* `SwitchTo` - Switches to another window\r\n\t\t* `SwitchToParent` - Jumps back to parent window\r\n\t\t* `Evaluate` - Evaluates a mathematical expression (Uses Browsers JS Runtime) and returns the value\r\n\t\r\n\t2. **Web Element Functions:**\r\n\t\t* `Input` - Send string value to a web element\r\n\t\t* `Click` - Click on a web element\r\n\t\t* `Right Click` - Right-Click on a web element\r\n\t\t* `Clear` - Clear a web element\r\n\t\t* `Send` - Send special key combinations (Ctrl+C, Enter, etc)\r\n * `Hover` - Hover over a web element\r\n\t\t* `Drag And Drop` - Drag and drop a web element to another web element\r\n * `Count` - Count the number of web elements\r\n\t\t* `isDisplayed` | `isPresent` - Verify if a web element is displayed\r\n * `isEmpty` - Verify if a web element is empty\r\n\t\t* `isNotDisplayed` | `isNotPresent` - Verify if a web element is not displayed\r\n\t\t* Check-Box Specific Functions\r\n\t\t\t* `isChecked` - Verify if the check box is checked\r\n\t\t\t* `isNotChecked` - Verify if the check box is not checked\r\n\t\t* Select-Box Specific Functions\r\n\t\t\t* `SelectByText` - Select option by text\r\n\t\t\t* `SelectByValue` - Select option by value \r\n\t\t\t* `SelectByIndex` - Select option by index\r\n\t\t* `GetAttribute` - Get the specified attribute of a web element\r\n\t\t\r\n\t3. **Run-Time Utility Functions**\r\n\t\t* `Save` - Save Text or Value attribute of an element to run-time variable\r\n\t\t* `Match` - Match the Text or Value of an element to stored run-time variable\r\n\t\t* `Equal` - To check equality of 2 variables\r\n\t\t* `NotEqual` - To check inequality of 2 variables\r\n\t\t* `Print` - Prints out text, value or string to console\r\n\t\r\n\t4. **Assertion Functions**\r\n\t\t* `Assert` [Default] - Default assert without any parameters will assert `Text` of an element\r\n * `Assert` [URL Over-ride] - URL Over-ride will assert the URL of the page\r\n\t\t* `Assert` [Misc Param Over-ride] - Over-ridden assert will assert the `Parameter` value of an element\r\n\r\n\t5. **Driver Functions**\r\n\t\t* `Close` - Closes the current window\r\n\t\t* `Quit` - Quits the browser instance\r\n\t\t* `Open` - Open a new browser instance\r\n\t\t* `Open/Get` - Open a new browser instance and get the URL\r\n\t\t* `Get` - Get a URL\r\n\t\t* `AcceptAlert` - Accept an alert box\r\n\r\n***\r\n## Internal Working ##\r\n* Reader package reads the data file and extracts the test execution configuration, test execution management and test cases.\r\n* Executor package executes the scripts and provides interim results\r\n* Reported package prints the results in user readable format (HTML document)\r\n\r\n## Dependencies ##\r\n* jxl.jar - Reading and writing Excel files\r\n* selenium-server-standalone - v2.42.2\r\n\r\n***\r\n\r\n## Road Map ##\r\n* Adding advanced selenium functions - In-Progress\r\n* Better Errors\r\n* Email configuration for report delivery\r\n* ~~Basic selenium functions~~\r\n* ~~Reporting~~\r\n* ~~Using results from execution module in reporting module~~\r\n* ~~Take screenshot in case of step failure~~\r\n* ~~Adding assertion checks~~\r\n* ~~Allow providing data file path from command line / run config~~\r\n* ~~Better Reports~~\r\n* ~~Error focus in screenshot~~\r\n\r\n***\r\n\r\n## Change Log ##\r\n* __14/07/2014__ : \r\n\t* [New Feature] : Evaluate functionality\r\n\t* [New Feature] : Print functionality\r\n\t* [New Feature] : Window handling\r\n\t* [Enhancement] : Attribute assertions\r\n\t* [Enhancement] : Code refactored\r\n\t* [Bug Fix] : Catch error of empty execution and report hashes\r\n\t* [Bug Fix] : Catch error of AJAX listener for sites not using jQuery for XHR\r\n* __27/06/2014__ : Refactored selenium file code, added 'Equal','isChecked','isNotChecked', fixed javascript action\r\n* __25/06/2014__ : Added select box option saving, assert can also use run-time variable data, bug fix in run-time lookup\r\n* __18/06/2014__ : Error handling for missing parameter, option to skip a test step\r\n* __13/06/2014__ : Added selenium functions for Select box, reworked error filename, reword error message in html report, added functionality to run command to allow step removal from front & back\r\n* __12/06/2014__ : Added total test cases description while reading, fixed multiple module detail tab report bug, sorting test cases in report, fixed click - Scroll into view only if element out of viewport\r\n* __11/06/2014__ : Refactored code, added Save/Match functionality, added error focus on web element, uses Selenium-2.42.2\r\n* __10/06/2014__ : The result report now organize the test cases in accordians with status as the header color, reworked URL assert\r\n* __06/06/2014__ : Created JAR executable, added Selenium Grid by default, AJAX listeners, command line argument for Data file\r\n* __04/06/2014__ : Added more selenium funtions, restructured error handler for Action - Assert\r\n* __02/06/2014__ : Restructured executor to remove if/elsifs and use switch for action types. \r\n* __Undocumented__ :Reworked Reading and Executing for allowing user to reuse existing test case within another test case.","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file
+{"name":"Automatr","tagline":"A web application automation testing framework using data file for driving test scripts","body":"# Automatr #\r\n\r\nAn automation framework for performing automation testing of Web Applications using Selenium.\r\n\r\n__Version__ : 0.0.10\r\n\r\n## How to Use ##\r\n### Direct execution ###\r\n1. Create a test script data file\r\n * Create data file that hosts configuration, execution list and test cases.\r\n * Refer wiki on how to create test case file, which has the required format for execution.\r\n2. Launch a selenium grid server with browser instances\r\n * Refer Examples - Grid_Script for launching selenium grid with Firefox and Chrome instances.\r\n3. Execute the JAR file\r\n * Provide data file path as the first argument\r\n4. Verify the test execution report generated by the framework\r\n * Result report is generated in reports folder\r\n\r\n### Build and Run ###\r\n1. Download Source zip or git clone the repository\r\n2. Import into your JAVA work-space\r\n3. Configure the build path to include dependencies\r\n * [JExcelAPI](http://jexcelapi.sourceforge.net/)\r\n * [Selenium Server Standalone v2.42.2](http://selenium-release.storage.googleapis.com/2.42/selenium-server-standalone-2.42.2.jar)\r\n * __(Optional)__ [Chrome Driver](http://chromedriver.storage.googleapis.com/index.html?path=2.10/)\r\n4. Configure the run configuration to pass in data file path as argument\r\n5. Create a test script data file\r\n * Create data file that hosts configuration, execution list and test cases.\r\n * Refer wiki on how to create test case file, which has the required format for execution.\r\n6. Launch a selenium grid server with browser instances\r\n * Refer Examples - Grid_Script for launching selenium grid with Firefox and Chrome instances.\r\n7. Run the Main class using the configuration defined in step 4\r\n8. Verify the test execution report generated by the framework\r\n * Result report is generated in reports folder\r\n\r\n***\r\n\r\n## Framework Capabilities ##\r\n* **Element Location:**\r\n 1. `Name`\r\n 2. `TagName`\r\n 3. `CSS`\r\n 4. `XPATH`\r\n 5. `ID`\r\n 6. `LinkText`\r\n 7. `PartialLinkText`\r\n* **Available Actions:**\r\n\t1. **General Functions:**\r\n\t\t* `Wait` - Waits for user defined seconds\r\n\t\t* `Javascript` - Executes a JS statement\r\n\t\t* `Run` - Runs another test case as boxed within an execution\r\n\t\t* `SwitchTo` - Switches to another window\r\n\t\t* `SwitchToParent` - Jumps back to parent window\r\n\t\t* `Evaluate` - Evaluates a mathematical expression (Uses Browsers JS Runtime) and returns the value\r\n\t\r\n\t2. **Web Element Functions:**\r\n\t\t* `Input` - Send string value to a web element\r\n\t\t* `Click` - Click on a web element\r\n\t\t* `Right Click` - Right-Click on a web element\r\n\t\t* `Clear` - Clear a web element\r\n\t\t* `Send` - Send special key combinations like Ctrl+C, Enter, etc.\r\n\t\t* `Hover` - Hover over a web element\r\n\t\t* `Drag And Drop` - Drag and drop a web element to another web element\r\n\t\t* `Count` - Count the number of web elements\r\n\t\t* `isDisplayed` | `isPresent` - Verify if a web element is displayed\r\n\t\t* `isEmpty` - Verify if a web element is empty\r\n\t\t* `isNotDisplayed` | `isNotPresent` - Verify if a web element is not displayed\r\n\t\t* Check-Box Specific Functions\r\n\t\t\t* `isChecked` - Verify if the check box is checked\r\n\t\t\t* `isNotChecked` - Verify if the check box is not checked\r\n\t\t* Select-Box Specific Functions\r\n\t\t\t* `SelectByText` - Select option by text\r\n\t\t\t* `SelectByValue` - Select option by value \r\n\t\t\t* `SelectByIndex` - Select option by index\r\n\t\t* `GetAttribute` - Get the specified attribute of a web element\r\n\t\t\r\n\t3. **Run-Time Utility Functions**\r\n\t\t* `Save` - Save Text or Value attribute of an element to run-time variable\r\n\t\t* `Match` - Match the Text or Value of an element to stored run-time variable\r\n\t\t* `Equal` - To check equality of 2 variables\r\n\t\t* `NotEqual` - To check inequality of 2 variables\r\n\t\t* `Print` - Prints out text, value or string to console\r\n\t\r\n\t4. **Assertion Functions**\r\n\t\t* `Assert` [Default] - Default assert without any parameters will assert `Text` of an element\r\n\t\t* `Assert` [URL Over-ride] - URL Over-ride will assert the URL of the page\r\n\t\t* `Assert` [Misc Param Over-ride] - Over-ridden assert will assert the `Parameter` value of an element\r\n\r\n\t5. **Driver Functions**\r\n\t\t* `Close` - Closes the current window\r\n\t\t* `Quit` - Quits the browser instance\r\n\t\t* `Open` - Open a new browser instance\r\n\t\t* `Open/Get` - Open a new browser instance and get the URL\r\n\t\t* `Get` - Get a URL\r\n\t\t* `AcceptAlert` - Accept an alert box\r\n\r\n***\r\n## Internal Working ##\r\n* Reader package reads the data file and extracts the test execution configuration, test execution management and test cases.\r\n* Executor package executes the scripts and provides interim results\r\n* Reported package prints the results in user readable format (HTML document)\r\n\r\n## Dependencies ##\r\n* jxl.jar - Reading and writing Excel files\r\n* selenium-server-standalone - v2.42.2\r\n\r\n***\r\n\r\n## Road Map ##\r\n* Adding advanced selenium functions - In-Progress\r\n* Better Errors\r\n* Email configuration for report delivery\r\n* ~~Basic selenium functions~~\r\n* ~~Reporting~~\r\n* ~~Using results from execution module in reporting module~~\r\n* ~~Take screenshot in case of step failure~~\r\n* ~~Adding assertion checks~~\r\n* ~~Allow providing data file path from command line / run config~~\r\n* ~~Better Reports~~\r\n* ~~Error focus in screenshot~~\r\n\r\n***\r\n\r\n## Change Log ##\r\n* __14/07/2014__ : \r\n\t* [New Feature] : Evaluate functionality\r\n\t* [New Feature] : Print functionality\r\n\t* [New Feature] : Window handling\r\n\t* [Enhancement] : Attribute assertions\r\n\t* [Enhancement] : Code refactored\r\n\t* [Bug Fix] : Catch error of empty execution and report hashes\r\n\t* [Bug Fix] : Catch error of AJAX listener for sites not using jQuery for XHR\r\n* __27/06/2014__ : Refactored selenium file code, added 'Equal','isChecked','isNotChecked', fixed javascript action\r\n* __25/06/2014__ : Added select box option saving, assert can also use run-time variable data, bug fix in run-time lookup\r\n* __18/06/2014__ : Error handling for missing parameter, option to skip a test step\r\n* __13/06/2014__ : Added selenium functions for Select box, reworked error filename, reword error message in html report, added functionality to run command to allow step removal from front & back\r\n* __12/06/2014__ : Added total test cases description while reading, fixed multiple module detail tab report bug, sorting test cases in report, fixed click - Scroll into view only if element out of viewport\r\n* __11/06/2014__ : Refactored code, added Save/Match functionality, added error focus on web element, uses Selenium-2.42.2\r\n* __10/06/2014__ : The result report now organize the test cases in accordians with status as the header color, reworked URL assert\r\n* __06/06/2014__ : Created JAR executable, added Selenium Grid by default, AJAX listeners, command line argument for Data file\r\n* __04/06/2014__ : Added more selenium funtions, restructured error handler for Action - Assert\r\n* __02/06/2014__ : Restructured executor to remove if/elsifs and use switch for action types. \r\n* __Undocumented__ : Reworked Reading and Executing for allowing user to reuse existing test case within another test case.","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file
From 926a9e781f0771a68d7ae64d2669277091ee7805 Mon Sep 17 00:00:00 2001
From: Vageesh Bhasin
Date: Tue, 15 Jul 2014 15:03:33 +0530
Subject: [PATCH 3/8] Create gh-pages branch via GitHub
---
index.html | 12 +++++++++++-
params.json | 2 +-
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/index.html b/index.html
index 67bc95f..fdab969 100644
--- a/index.html
+++ b/index.html
@@ -323,7 +323,17 @@