What is Selenium?
-
- Selenium is one of the most popular Test Automation Tool available in the market
- Selenium automates Web Applications and Mobile applications .
- Selenium cannot automate Desktop applications
- Selenium is an Open Source Tool
- Open Source Software – Software’s who’s source code can be publicly accessible and can be used by other developers/communities to view, modify or enhance or share it for different reasons.
- Selenium is Free
- No licensing cost is involved
- Selenium can be used to execute the automation tests across the following different supported browsers
- Chrome
- Firefox
- Internet Explorer
- Safari
- Opera
- Selenium can be used to execute the automation tests across the following different operating systems
- Microsoft Windows
- Apple OS X
- Linux
- Selenium automation scripts can be developed using any of the following programming languages:
- Java (Mostly used, famous and also has lot of support in the market)
- Python
- C#
- Ruby
- Perl
- PHP
What are the different components of Selenium?
-
- Selenium is not a single tool, instead it is a suite of tools
- Instead Selenium is the combination of the following different tools or components
- Selenium IDE
- Record and Playback Tool
- Cannot be used for complex applications
- Selenium RC (Outdated)
- Used to be the major tool earlier till the Selenium WebDriver came into the market with more benefits.
- Selenium WebDriver
- Major tool of Selenium in the current market
- Selenium Grid
- Used to support parallel execution by distributing the tests across multiple machines
- Selenium IDE
What are the different versions of Selenium?
-
- Selenium 1
- Selenium 1 = Selenium IDE + Selenium RC + Selenium Grid
- Selenium 2
- Selenium 2 = Selenium IDE + Selenium WebDriver 2.x + Selenium RC + Selenium Grid
- Selenium 3
- Selenium 3 = Selenium IDE + Selenium WebDriver 3.x + Selenium Grid
- Selenium 1
What are Locators?
>Locators help Selenium in finding the UI elements on the Web Page
below you can find the different types of locators we can use in
Selenium:
-
- ID
- Name
- Class Name
- Link Text or Partial Link Text
- CSS Selectors
- XPath
- DOM TagName
What are the different Types of drivers that are available in Selenium WebDriver
The following are the different types of drivers available in Selenium WebDriver:
-
- ChromeDriver
- For executing Selenium Automation Scripts on Chrome Browser
- FirefoxDriver
- For executing Selenium Automation Scripts on Firefox Browser
- InternetExplorerDriver
- For executing Selenium Automation Scripts on Internet Explorer Browser
- SafariDriver
- For executing Selenium Automation Scripts on Safari Browser
- OperaDriver
- For executing Selenium Automation Scripts on Opera Browser
- EdgeDriver
- For executing Selenium Automation Scripts on Edge Browser
- EventFiringWebDriver
- For firing the WebDriver listener events
- RemoteWebDriver
- Used with Selenium Grid for executing automation scripts on different remote machines.
To verify whether the element is visible or not on a Webpage ?
Test Steps :
-
- Launch the Firefox browser
- Navigate to AppUrl
- Wait 5sec
- To verify whether the Guru Jobs element is visible or not on a Webpage ?
Selenium Code :
package seleniumProject;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Verify_Element_DisplayedorNot {
public static void main(String[] args) throws InterruptedException {
//Launch the Firefox browser
WebDriver driver = new
FirefoxDriver();
//Navigate to AppUrl
driver.get("https://www.Gurutechnologies.com/jobs/");
//Wait 5sec
Thread.sleep(5000);
//To verify whether the Guru Jobs element is visible or not on a Webpage ?
if(driver.findElement(By.xpath("/html/body/div[3]/div[1]/div/div/d iv/div/div/h2/em")).isDisplayed())
{
System.out.println("Guru Jobs Element is visible");
}else
{
System.out.println("Guru Jobs Element is Invisible");
}
}
}
To verify whether the element is Enable or Disable on a Webpage?
Test Steps :
- Launch the Firefox browser
- Navigate to AppUrl
- Wait 5sec
- To verify whether the Guru Jobs element is Enable or Disable on a Webpage ?
Selenium Code :
package seleniumProject;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Verify_Element_EnabledorNot {
public static void main(String[] args) throws
InterruptedException {
//Launch the Firefox browser
WebDriver driver = new FirefoxDriver();
//Navigate to AppUrl
driver.get("https://www.Gurutechnologies.com/jobs/");
//Wait 5sec
Thread.sleep(5000);
//To verify whether the Guru Jobs element is Enable or Disable on a Webpage ?
if(driver.findElement(By.xpath("/html/body/div[3]/div[1]/div/div/d iv/div/div/h2/em")).isEnabled())
{
System.out.println("Guru Jobs Element is Enable");
}else
{
System.out.println("Guru Jobs Element is Disable");
}
}
}
How to verify particular text in a webpage? Or How to verify successfull message in selenium?
Test Steps :
- Launch the Firefox browser
- Navigate to AppUrl
- Wait 5sec
- Identify and get the Guru Jobs text and store into jobs_Text variable
- Print the Guru Jobs text
- verify Guru Jobs text
- Close the current browser window
Selenium Code :
package seleniumProject;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Verify_Guru_JobsText {
public static void main(String[] args) throws InterruptedException
{
//Launch the Firefox browser
WebDriver driver = new FirefoxDriver();
//Navigate to AppUrl driver.get("https://www.Gurutechnologies.com/jobs/");
//Wait 5sec
Thread.sleep(5000);
//Identify and get the Guru Jobs text and store into jobs_Text variable
String
jobs_Text=driver.findElement(By.xpath("/html/body/div[3]/div[1]/div/div/div/div/div/h2/em")).getText();
//Print the Guru Jobs text
System.out.println(jobs_Text);
//verify Guru Jobs text
if(jobs_Text.equals("JOBS"))
{
System.out.println("Guru Jobs Text verified successfully");
}else
{
System.out.println("Guru Jobs Text not verified successfully");
}
//Close the current browser window
driver.close();
}
}
Control statements :
Syntax :
If(Actual_value.equals(Expected_value))
{
//Execute the code if condition is true
}else
{
//Execute the code if condition is false
}
Actual_value : Take the text from Testing Application.
Expected_value : client requirement