Advertisements

Domain Specific Language

Domain Specific Languages are methods that are specifically written to make the API in a very readable format. This would enable a good rapport between the developers and business people.

Selenium provides a test domain-specific language (Selenese). Selenese is a set of commands that is used for running the tests.

We can also write our own DSL, specific to our requirement and customise according to the framework.

Wrapping the Selenium API/WebDriver API’s.

Selenium 1.0:

public void selectFrame(Selenium selenium, String elementName){
selenium.highlight(elementName);
selenium.selectWindow(elementName);
selenium.windowFocus();
}

A similar example in the WebDriver can be written, a few examples below:

Selenium 2.0

WebDriver by itself dont have any DSL , but we can always build on our own.

public void findElementAndClick(webDriver driver, String elementLocator){
driver.findElement(By.name(elemenLocator)).click();
}

Now you can call the method findElementAndClick to do the click operation.

public void findElementAndType(webDriver driver, String elementLocator,String testData){
driver.findElement(By.name(elemenLocator)).clear();
driver.findElement(By.name(elemenLocator)).sendKeys(testData);
}

Now you can call only the findElementAndType method to perform the operation, this will be more readable and will avoid code duplication.

public void findElementAndExecuteJavaScript(webDriver driver, JavascriptExecutor js, Id id){
JavascriptExecutor js =(JavascriptExecutor)driver;
js.executeScript("return document.getElementById('id');");
}

Now you can call findElementAndExecuteJavaScript method to perform the JavaScript operation in your tests.

This is just an example and we can always modify according to the requirement and framework.

Hope this helps. Feel free to share and do follow for more posts.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

    Advertisements
    Advertisements
%d bloggers like this: