Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
tutorial:scripting_state_model [2020/11/24 21:59]
admin [Activating plugins]
tutorial:scripting_state_model [2021/01/05 03:00] (current)
Line 37: Line 37:
  
  
-Besides triggers, scripts are also used for building UI Page Objects, Cucumber style test step definition and MCases, which are out of scope of this tutorial.  Please refer to [[../ide_script | Script Editor]] for more details.+Besides triggers, scripts are also used for building UI Page Objects, //Cucumber// style test step definition and //MCases//, which are out of scope of this tutorial.  Please refer to [[../ide_script | Script Editor]] for more details.
  
 ===== Model triggers ===== ===== Model triggers =====
Line 112: Line 112:
    $SYS.log('Random phone#: ' + $RANDOM.randPhone('999-999-9999') );    $SYS.log('Random phone#: ' + $RANDOM.randPhone('999-999-9999') );
        
 +==== Web App Automation====
 For test automation, for example web application you would activate //Selenium// plugin.  Once you have the plugin activated, you will be able to use //$SELENIUM// to interact with your web application through //Selenium/WebDriver// For test automation, for example web application you would activate //Selenium// plugin.  Once you have the plugin activated, you will be able to use //$SELENIUM// to interact with your web application through //Selenium/WebDriver//
  
 For example: For example:
  
-   $SELENIUM.getWebDriver().findElement(org.openqa.selenium.By.id('amount').click(); +   $SELENIUM.getWebDriver().findElement(org.openqa.selenium.By.id('DrinkWater').click(); 
- + 
 +=== Page Object===    
 +You could also use //PAGES// tab to define page object: 
 +   //PAGES Script 
 +   import org.openqa.selenium.By; 
 +   mainPage = $SYS.addPage('MainPage'
 +   elem = mainPage.addElement('DrinkWater', By.id('Water')) 
 +   elem.addAction('click', { elem, params -> 
 +      $SELENIUM.getWebDriver().findElement(elem.locator).click(); 
 +   })
        
 +Then in //TRIGGERS// tab, you can do this:
 +   $SYS.page('MainPage').element('DrinkWater').perform('click');
 +   
 +The advantage of using page objects is that all element locators are organized and managed in one central place for easy maintenance.
 +
 +=== Find Element Locator ===
 +Web element locator can be xpath, css or by id, etc. as supported by //Selenium//.
 +
 +There are many browser add-on/extension tools that can help you find locators for web element very easily.  Check out [[../externalsources | External Sources]] for a list of such tools.
 + 
 ===== User variables ===== ===== User variables =====