POM

Common problems in the software development process?

Posted on

There are 5 common problems in software development process

Poor Requirement: –   Unclear details, Incomplete requirement, and too general.

Inadequate testing: – No one knows whether your program is any good till the customers complains or system crashes.

Features: – A request to pile on new features after development is underway, Actually this extremely common.

Miscommunication: – If developers don’t know what’s needed or customers have erroneous expectations problem are guaranteed

Advertisements

How to Validate Salesforce Login page using page object model in selenium Webdriver

Posted on Updated on

What is Page Object Model(POM)?

It is a design pattern to create object repository for web UI elements. Under the POM for each web page in the application, there should be a corresponding page class. This Page class will find the WebElements of that web page and contains Page methods which perform operations on those WebElements. This Page class will find the WebElements of that web page and contains Page methods which perform operations on those WebElements.

Shashikant_POM

Advantage of Page Object model

The main advantage of Page Object Model is that if the UI changes for any page, it doesn’t require us to change any tests, we just need to change only the code within the page objects (Only at one place).

POM creates our testing code maintainable and reusable.

How to design the page object model.

Step 1 If eclipse not installed in your PC then click on download

  • Double click on downloaded .exe file.
  • Select Eclipse IDE for Java Developers.
  • Click on Install
  • Open the eclipse

Step 2 Create a Java project (SalesforcePMO)

Shashikant_JavaProject

Step 3 Right click on Project and Create a package(PageObjectModule).

Shashikant_Package

Step 4 Add the selenium Library files your package.

  • Download selenium latest version
  • Right click on the project
  • Select the properties from open window
  • Select java build path and then click on the libraries
  • Click on the Add External JAR’s
  • Open your downloaded selenium jar file.
  • Click on Apply and close button.

Shashikant_Slib.png

Step 5 Add TestNG library file.

  • Right click on the project
  • Select the properties from open window
  • Select Java build path and then click on the libraries
  • Click on the Add Library
  • Select TestNG
  • Click on Next
  • Click on finish button
  • Click on Apply and close button.

Shashikant_Slib

Step 6 Inside the PageObjectModule Package create one class LoginPOM.java

Note: – Each page in the application will contains separate class

Shashikant_class.png

Step 7 Create one more package with name TestPackage.

Step 8 Create a class LoginTest.java inside the TestPackage.

Step 9 Copy the below code and paste into the related java file.

LoginPOM.java

package PageObjects;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

 

public class LoginPOM {

//All web element which are used on the Login page

WebElement usernameBox;

WebElement passwordBox;

WebElement cookiesCheckBox;

WebElement loginButton;

WebElement verifyButton;

public LoginPOM(WebDriver driver) {

//for maximize the window size

driver.manage().window().maximize();

//Find the web element by id

usernameBox = driver.findElement(By.id(“username”));

passwordBox = driver.findElement(By.id(“password”));

cookiesCheckBox =driver.findElement(By.id(“rememberUn”));

loginButton = driver.findElement(By.id(“Login”));

}

//Login with cookies method

public void LoginwithCookies(String username, String password) {

usernameBox.sendKeys(username);

passwordBox.sendKeys(password);

cookiesCheckBox.click();

loginButton.click();

}

// Login without cookies

public void LoginWithoutCookies(String username, String password) {

usernameBox.sendKeys(username);

passwordBox.sendKeys(password);

loginButton.click();

}

}

LoginTest.java

package Tests;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

import org.testng.annotations.*;

import PageObjects.LoginPOM;

public class LoginTests {

WebDriver driver = null;

String testUrl = “https://login.salesforce.com/”;

@BeforeMethod

//Browser open

public void setUp(){

//Download the ChromeDriver. To download click here

//Set the system property to open the chrome browser.

System.setProperty(“webdriver.chrome.driver”,        “C:\\Users\\Lenovo\\Downloads\\SeleniumDrivers\\chromedriver.xe”);

driver = new ChromeDriver();

driver.get(testUrl);

driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);

}

@Test

public void validLoginPOM() throws InterruptedException {

LoginPOM loginpage= new LoginPOM(driver);

loginpage.LoginWithoutCookies(“Enter user name”, “Enter password”);

Thread.sleep(25000); // wait 25 second, meanwhile you will get email verification code.

//Enter verification code manually which you received on email

WebElement verifyButton = driver.findElement(By.id(“save”));

verifyButton.click();

}

@Test

public void validLoginPOM1() throws InterruptedException {

LoginPOM loginpage= new LoginPOM(driver);

loginpage.LoginwithCookies(“Enter Username”, “Enter Password”);

Thread.sleep(25000);

//Enter verification code manually.

WebElement verifyButton = driver.findElement(By.id(“save”));

verifyButton.click();

driver.quit();// close your browser

}

@AfterMethod

public void TestClose() throws Exception {

driver.quit();

}

}

Note: If the user doesn’t want to enter verification code then user have to login with developer Org and Go to setup-> type profile in quick find box -> open system administrator profile -> click on Login IP Ranges -> click on new button. set the IP ranges from 0.0.0.0 to 255.255.255.255 and save the IP Rang.

Sources: –

SeleniumHQ, Guru99Eclipse