Java

Java POM: 09-Selenium Tricks

Common Selector Strategies

Page Title

return driver.getTitle();

 

findElement(By.id

element = driver.findElement(By.id("edit-field-tags-target-id"));
return element;

 

findElement(By.xpath

element = driver.findElement(By.xpath("//iframe[@title='Rich Text Editor, Body field']"));

 

Explicit Waits

int timeoutSec = 15;
WebDriverWait wait = new WebDriverWait(driver, timeoutSec);
wait.until((driver) -> driver.findElements(By.xpath("//a[@href='/uc/user/login']")).size()>0);
wait.until((driver) -> driver.findElement(By.xpath("//a[@href='/uc/user/login']")).isDisplayed());

 

Tags

CucumberJVM: 00 - Gherkin Language

Basic Gherkin Feature Model

Feature: User can create an article

Scenario: user logs in
Given user is on HomePage
When user navigates to LoginPage
And user enters UserName and Password
Then message displayed Login Successful

Scenario: user creates a new article
Given user is logged in and on HomePage
When user clicks CreateArticleLink
And user enters ArticleTitle
And user enters ArticleBody
And user neters ArticleTags
And user clicks NewArticleSubmitButton
Then message is displayed Article Created Successfully
And NewArticlePage title is MyNewArticle

Feature Keyword

  • Defines the functionality the test targets
  • Multiple scenarios can be created to cover this functionality
Feature: User can create an article
Feature: User can create an article

This feature will ensure a user can login and the product handles invalid credentials correctly
Feature: User can create an

yum: CentOS 7 Java8

 


cd /opt
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.tar.gz"
tar xzf jdk-8u171-linux-x64.tar.gz
OR
tar -xvzf jdk-8u171-linux-x64.tar.gz

 

Tags

CucumberJVM: 09 - Cucumber Hooks: @before & @after

 

 


@Before

public void setup(){}

 


@After

public void teardown(){}

 


Global

@Before()

 

@After()


Tagged Scenarios

@First

Scenario: first scenario

@Second

Scenario: second scenario

@Third

Scenario: third scenario

 


For @First ONLY ( NOT GLOBAL )

@Before("@First")

@After("@First")

 


Tagged Hooks

@Before() //Global

@Before("@First") //Specific

@After("@First") //Specific

@After() //Global


Ordered Hooks

@Before(order=0) //Global

@After(order=0) //Global

@Before(order=1) //Global

@After(order=1) //Global


 

 

 

 

 

 

 

 

 

Subscribe to Java