AutonomIQ Supported NLP commands
NLP supports human understandable english, here is a general primer:
Action Field
- [open/launch/go to/navigate] website [url]
 
  open website       https://www.google.com
  launch website     https://www.yahoo.com
  go to website      https://www.linkedin.com
  navigate website   https://www.github.com
Those commands are exist for access given website address only
note that above Instruction could be separated into 2 part which indicating Action field and Data field each
- wait for {number} seconds
 
  wait for 1 secs
  wait for 5 seconds
  wait 5 secs
wait for command can be used when you want to control the waiting time manually
- Wait until element is [visible/exists/not visible]
 
  Wait until _xpath{"//p[@class='productNumbers']"} is visible
  Wait until _xpath{"//p[@class='productNumbers']"} is not visible
  Wait until _xpath{"//p[@class='productNumbers']"} is exists
Our engine will wait until given element is coming up within DOM
- Wait until element is [disabled/enabled]
 
  Wait until _xpath{"//p[@class='productNumbers'"} is disabled
  Wait until _xpath{"//p[@class='productNumbers'"} is enabled
Our engine can check the status of element which could be switched like Switch HTML tag
- Verify element is element
 
  Verify _css{"body:nth-child(6) div:nth-child(2) > div.App"} is _xpath{"//div[@class='App']"}
  Verify _xpath{"//div[@class='App']"} is _css{"body:nth-child(6) div:nth-child(2) > div.App"}
Our engine is able to compare the 2 given element by using above Verify command
- Verify element [contains/begins with/ends with] [text]
 
  Verify _xpath{"//div[@class='App']"} contains 'sample'
  Verify _xpath{"//div[@class='App']"} begins with 'sample'
  Verify _xpath{"//div[@class='App']"} ends with 'sample'
Our engine is able to check whether given element has specific text if the a given element has text
- Verify element [contains/begins with/ends with] [text] [or] [contains/begins with/ends with]
 
  Verify _xpath{"//div[@class='App']"} begins with 'auto' or ends with 'nomiq'
Text include verification syntax like previous command could be implemented continuously with or syntax
- Verify the current url is [url]
 
  Verify the current url is 'https://www.test.com/'
Check the url which currently in with browser whether is same with given url
- Verify new [window/tab/alert/pop up/pop-up] exists
 
  Verify new window exists
  Verify new tab exists
  Verify new alert exists
  Verify new pop up exists
  Verify new pop-up exists
Check if new window or alert or tab or pop up is coming up upon existing window
- Verify element [exist/exists]
 
  Verify _xpath{"//div[@class='App']"} exist
  Verify _xpath{"//div[@class='App']"} exists
Check whether given element is exist on current DOM or not
- Verify element [does not/doesnt/doesn't] [exists/exist]
 
  Verify _xpath{"//div[@class='App']"} does not exists
  Verify _xpath{"//div[@class='App']"} `doesn't` exists
  Verify _xpath{"//div[@class='App']"} doesnt exists
Check whether given element is exist on current DOM or not
- Switch to [first/second/1/1st/2/2nd/3/3rd/original/new] [tab/window]
 
  Switch to first tab
  Switch to second tab
  Switch to 1 tab
  Switch to 1st tab
  Switch to 2 tab
  Switch to 2nd tab
  Switch to 3 tab
  Switch to 3rd tab
  Switch to original tab
  Switch to new tab
Our engine can switch the context of window if the new tab or window is coming up
- Switch to [alert/prompt/confirm] and click on [ok/accept/leave/cancel/stay]
 
  Switch to alert and click on ok
  Switch to prompt and click on cancel
  Switch to confirm and click on accept
Our engine can switch the context of window and also do an Actions that prompt has
- Switch to [alert/prompt] box and enter [text] and click on [ok/accept/leave/cancel/stay]
 
  Switch to alert box and enter 'first name' and click on cancel
Our engine can do continuous Action regarding what procedure the prompt window has
- Use custom code from [FileName]
 
  Use custom code from MyCustomCode
FileName field is going to filled with file name without extension name like .java
 note that the file should be stored into AutonomiQ minio server prior to use in Test case
- REST API calls
 
Curl syntax is support for REST api calls and results can be saved to variables
  _api{-X "PUT"/"GET"/"POST"  -d ${data} -H "{"Content-Type": "application/json"}"  "https://google.com"}
  save _api{-X "PUT"  -d ${data} -H "{"Content-Type": "application/json"}"  "https://google.com"} as "result" will store the result as variable result (accessible as $result)
Our engine is able to do Action with not only element text but also element _xpath or element _css
- [click/press] [on/at] [element]
 
  Click on 'Submit'
  Press on 'Cancel'
  Click at 'Submit'
  Press at 'Cancel'
Our engine is able to do Action with not only element text but also element _xpath or element _css
- [click/press] [on/at] [radio/checkbox] next to [element text]
 
  Click on radio next to      'California'
  Click at checkout next to   'California'
  Press on radio next to      'California'
  Press at checkout next to   'California'
Our engine can verify the radio or checkbox which located beside text element like Below
- Select/choose [element text]
 
  Select  'California'
  Choose  'California'
This command could be implemented when the DOM has Select tag for select one element from various option
- Upload file to [field]
 
  Upload file to 'Upload xlsx file'
This command could be implemented when the website require file uploading step in order to testing functionality note that this command require artifact file which supposed to be uploaded as file by this command
- Hover [over/on] element
 
  Hover over 'user name'
  Hover on   'user name'
This command is needed when user need to check the elements when we hover over the cursor on given element not by Click
- [Enter/type in/fill in/set] text in [field]
 
  Enter 'John Doe' in user name
  Type in 'John Doe' in user name
  Fill in 'John Doe' in user name
  Set 'John Doe' in user name
Our engine is able to find the element by text in order to do Action on that element
- Set screen/window size - 
*  
  Set screen size - 1024 * 768
This command can change the size of window, especially useful when user's website has different element variation when change the resolution
- Create random variable [var_name]
 
  Create random variable password
This command is going to generate random alphanumeric string for checking field's restriction like password field
- Save element as [variable_name]
 
  Save _xpath{"//div[@class='App']"} as first_value
This command is going to store the given element's data if given element has value on it note that this command can store multiple value which separated with comma in one variable from table element
- Save [element text] as [variable_name]
 
  Save user name as user_id
Save command also able to store the value from text based element
- [action] and save it as [variable_name]
 
  Enter username and save it as user_id
This command is going to enable to reuse the same value as data into another step by storing as variable
- begin block [block_name]
 - [some instructions]
 - end block
 
  begin block create_value
  Create random variable password
  end block
Saved block could be used with calling the name of block as same as saved variable in this case ${create_value}
- using for loop
 - run ${block name} for [number] times
 - run ${block name} for all rows
 
  using for loop
  run ${click_button} for 5 times
  using for loop
  run ${save_value} for all rows
This command is useful when user should check same action but multiple time at one time This will shorten the length of test step obviously
Data Field
- ${variable_name} to reference a previously saved variable
 - {Today, 
}  
  {Today, dd/mm/yy}
  {Today, mm/dd/yy}
  {Today, yy/mm/dd}
This format is enable to get today's date in the specified format note that you can use yyyy format rather than yy like below {Today, MM/dd/yyyy}
- {Today + 2{dd}, MM/dd/yyyy}
 
  {Today + 2{dd}, MM/dd/yyyy}
As of today (11/24/2018), expected result is (11/26/2018)
- {Today - 2{dd}, MM/dd/yyyy}
 
  {Today - 2{dd}, MM/dd/yyyy}
As of today (11/24/2018), expected result is (11/22/2018)
- {Today - 1{mm}, MM/dd/yyyy}
 
  {Today - 1{mm}, MM/dd/yyyy}
As of today (11/24/2018), expected result is (10/24/2018)
- {Today - 1{yy}, MM/dd/yyyy}
 
  {Today - 1{yy}, MM/dd/yyyy}
As of today (11/24/2018), expected result is (11/24/2017)
- {Today + 1{yy}, MM/dd/yyyy}
 
  {Today + 1{yy}, MM/dd/yyyy}
As of today (11/24/2018), expected result is (11/24/2019)