0% found this document useful (0 votes)
77 views

Selenium Notes 1

This document provides an overview of Selenium, summarizing its key components, capabilities and how it can be used for automation testing. It also discusses related tools like TestNG and best practices for writing tests and XPaths.

Uploaded by

Ashish Pandey
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
77 views

Selenium Notes 1

This document provides an overview of Selenium, summarizing its key components, capabilities and how it can be used for automation testing. It also discusses related tools like TestNG and best practices for writing tests and XPaths.

Uploaded by

Ashish Pandey
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

Selenium:

Developed by the Company Thought Works.


It is open source automation tool suit.
It is available in the form of API(.jar)
It supports multiple

if UI is in Android/ IOS
==> Appium
If UI is in React Js or Node Js
==>Protractor

Selenium has 4 major Components: selenium.dev


1. IDE: plugin-- Firfox Browser, record and play
limit: looping, condtional statement
2. RC-(Remote Control):
Server
3. WebDriver:
4. GRID:Parallel execution of Test

Selenium-2:
RC + WebDriver
Selenium-3.x:
WebDriver:enhancememnt is UI interaction, accessing and contr0ling
Works on a protocol Json Wire Protocol
Selenium 4:
W3 constorium protocol
More Locators are introduced
take screen shot on field level, earlier it was on page level

<input type='text' name='abc' class='input-design' id='nameid'/>


<a href=''>click</a> partial linkText , xpath --absolute, relative //

Maven:
Project Build Tool
Import/ download all dependencies

Artifact Id:--Project Name---CradsProject


Group-Id:--name of the company
com.capgemini-- package

Packaging:jar/war/ear
Version:

Select WebElement:
we have 8 selectors by which we can select web element
1. id ----(priority-1)
2. name -- (prio-3)
3. css-selector --(priority-2) #id, .class
4. xpath-- absolute path, relative path(recomd.) (prio-2)
5. tagname
6. class name
7. link text -- <a>
8. partiallink text <a>

Writing own Xpath:


======================
1. Xpath should be start with //
2. Then check the tag name
3. Then use properity/attribute with @

e.g:
//input[@name='q']

//input[contains(@name, 'q')]

By.id("test_123")
after refreshing test_678, test_jdjf, test_34553

//input[contains(@id, 'test_')]

For Anchor Tag:


//a[contains(text(),'Gmail')]

Switching Command:
Switch to Frame:
driver.switchTo().frame(String fname)
driver.switchTo().frame(int index)
driver.switchTo().frame(WebElement)
Switch to Alert
Switch to Window

====================================
Waits in Selenium:
Threre are two types of wait
1. Unconditional wait:
1. Thread.sleep() ---> Not-recomd
2. implicit wait: ---> works on driver itself
2. Conditional wait:
There are two Conditional Waits
1. Explicit Wait:
1. WebDriverWait-- It is applicable for only one WebElement
2. Fluent wait

=====================================
isEnable()
isDiplayed()
isSelected()
================================
Navigation:
driver.navigate().to(url)
driver.navigate().back();
driver.navigate.forward();
driver.navigate().refresh();
===================================

Action class in selenium:

Actions action = new Actions(driver);


action.moveToElement(WebElement).perform(); // build is optional for single
operation
or
action.moveToElement(WebElement).build().perform();

//if multiple action is to combine and perform the action then build is
required
action.clickandHold(WebElement)
.moveToElement(WebElement)
.release()
.build()
.perform()

// for double click -- http://demo.guru99.com/test/simple_context_menu.html

WebElement link =driver.findElement(By.xpath("//button[text()='Double-Click


Me To See Alert']"));
action.doubleClick(link).perform();

//Switch to the alert box and click on OK button

Alert alert = driver.switchTo().alert();


System.out.println("Text on Alert" +alert.getText());
alert.accept();

// for right clcik --http://demo.guru99.com/test/simple_context_menu.html

WebElement link = driver.findElement(By.cssSelector(".context-menu-one"));


action.contextClick(link).perform();
// Click on Edit link on the displayed menu options
WebElement element = driver.findElement(By.cssSelector(".context-menu-icon-
copy"));
element.click();

OR

action.sendKeys(Keys.ARROW_DOWN).perform();
action.sendKeys(Keys.ARROW_DOWN).perform();
action.sendKeys(Keys.ARROW_DOWN).perform();

action.sendKeys(Keys.ENTER).perform();

=================================

Junit--Unit Testing

TestNG (open source, free, .jar)


TDD-- Test Driven Development
-- Unit Test Framework
--Purpose--design the test cases in a systematic way
-- Good Suport for reporting-- html
-- Annotations --(always satrts with @)
-- priorities / sequence
-- data providers
-- grouping

For the test:


there will be some pre-requisites
@Before*
after that we will write the test, for writing the test we use
@Test
Post-condition
@After*
BeforeMethod Method
Test Case Method
AfterMethod Method

How to install TestNg in Eclipse?

--------------
1) Add extent dependency(extentreport aventstack)
2) Create one utility class that will generate Extent Report

Step:
onTestSuccess
onTestFail
onTestSkipped

BDD-- Behavior Driven Development -- commom language(English) --Cucumber(Gherkin-


keywords)
it is extension of TDD

You might also like