Java

Writing test case in Selenium WebDriver with simple example

Writing test case in Selenium WebDriver with simple example
easy way to Writing test case in Selenium WebDriver with simple example
In the following post I will go step by step and explain how to write your first test case using Selenium Webdriver and execute it using TestNG.
1. Right click on the src folder ->New -> Package.

2. Provide package name something like com.stm.test and click “Finish”.

3. Right click on the newly created package – > New -> Class.

4. Provide class name as “RegistrationTest” and click Finish.
Writing test case in Selenium WebDriver with simple example

5. Write the code given below for your first test.
I am taking an example of automating register user functionality for demo sitehttp://newtours.demoaut.com
The code for the first test is as follows:

package com.stm.test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import org.testng.annotations.Test;
public class RegistrationTest
{
@Test //This is TestNG annotation
public void testRegister()
{
WebDriver driver = new FirefoxDriver();
driver.get(“http://newtours.demoaut.com/”);
driver.findElement(By.linkText(“REGISTER”)).click();
driver.findElement(By.name(“firstName”)).sendKeys(“User1″);
driver.findElement(By.name(“lastName”)).sendKeys(“Surname1″);
driver.findElement(By.name(“phone”)).sendKeys(“123456789″);
driver.findElement(By.name(“userName”)).sendKeys(“user1@test.com”);
driver.findElement(By.name(“address1″)).sendKeys(“Test Address”);
driver.findElement(By.name(“city”)).sendKeys(“Test City”);
Select select = new Select(driver.findElement(By.name(“country”)));
       select.selectByVisibleText(“ANGOLA”);
driver.findElement(By.name(“email”)).sendKeys(“user1@test.com”);
driver.findElement(By.name(“password”)).sendKeys(“user1″);
driver.findElement(By.name(“confirmPassword”)).sendKeys(“user1″);
driver.findElement(By.name(“register”)).click();
driver.close();
driver.quit();
}
}
6. After finishing the test right click on the test and click on RunAs – >TestNG Test
Writing test case in Selenium WebDriver with simple example
7. After executing the test select the project and press F5 to refresh the project. A new folder “test-results” will get created which will show you the results for the execution. Right click on index.html->open with->web browser to see the execution report.
If you like this post hit like button for facebook and share it!!

50+ Interview Questions on SDLC (Software Development Life Cycle)

50+ Interview Questions on SDLC (Software Development Life Cycle)



1) What is SDLC?

Software Life Cycle Model is a systematic approach to develop Software. 

2) What are the phases in Software Development Life Cycle?

Requirements Gathering
Analysis & Planning
Software Design
Coding or Implementation
Testing
Release & Maintenance
Note: Phase names may vary from one company to another 

3) What is STLC?

Software Testing Life Cycle or Software Test Process is a formal way to perform Testing.

4) What are the phases in Software Testing Life Cycle?

Test Planning
Test Design
Test Execution
Test Closure

5) What is Bug Life Cycle?


Bug Life Cycle is the Process through which a defect or bug goes starts when defect found & ends when defect is closed.

Different Flows in Bug Life Cycle

New: Tester provides new status while Reporting (for the first time)

Open: Developer / Dev lead /DTT opens the Defect

Rejected: Developer / Dev lead /DTT rejects if the defect is invalid or defect

Fixed: Developer provides fixed status after fixing the defect

Deferred: Developer provides this status due to time

Closed: Tester provides closed status after performing confirmation Testing

Re-open: Tester Re-opens the defect with valid reasons and proofs 

6) What is ALM (Application Lifecycle Management)?

Application Lifecycle Management (ALM) is a continuous process of managing the life of Software application through development, testing and maintenance.

7) What are the phases in Software Application Life Cycle?

Development phase
Testing phase
Production phase

8) What is Error?

Any mismatch in Computer programming, another name is Mistake.

9) What is Defect or Bug?

Any mismatch that found in testing phase

10) What is Failure?

Any mismatch that found in production phase (Customer environment)

11) What is Waterfall Model?

The waterfall model is a sequential software development approach,  in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Requirements Gathering, Analysis and Planning, Software Design, Coding or Implementation, Testing and Release & Maintenance.  

12) What is V Model?

A framework, It describes the software development lifecycle activities from
requirements specification to Release & maintenance. 


The V-model illustrates how testing activities can be integrated into each phase of the software development lifecycle.

13) What is Prototype Model?

14) What is Spiral Model?

15) What is Agile Model?

16) What is Quality?

The degree to which a component, system or process meets specified requirements and/or user/customer needs and expectations. 

17) What is Software Quality?

18) What is SQA (Software Quality Assurance)?

19) What is Quality Control?

20) What is Verification?

21) What is Validation?

22) What is Testing?

23) What is the relation between Quality and Testing?

24) What are the advantages of Waterfall Model?

25) What are the disadvantages of Waterfall Model?

26) What are the advantages of V Model?

27) What are the disadvantages of V Model?

28) What are the advantages of Prototype model?

29) What are the disadvantages of Prototype model?

30) What are the advantages of Agile model?

31) What are the disadvantages of Agile model?

32) What is Requirement?

33) What is Requirement Specification?

34) What is BRS?

35) What is SRS?

36) What is High Level Design or Global Design?

37) What is Detailed Design or Low Level Design?

38) What are the important types of Requirements?

39) What is Business Requirement?

40) What is Software Requirement?

41) What is Test Requirement?

42) What is Software Release?

43) What is Software Maintenance?

44) What is Change Request?

45) What is PIN Document and who prepares this document?

46) What are the teams involved in Software Development?

47) What is Static Testing?

48) What is Dynamic Testing?

49) Why we use Test Design Techniques?


Exhaustive testing is impractical so we use Test Design Techniques in order to reduce the sizes of input and output domains. 

50) What is Exhaustive Testing?

A test approach in which the test suite comprises all combinations of
input values and preconditions.

51) What is Quality Management?

Coordinated activities to direct and control an organization with regard
to quality. 


Direction and control with regard to quality generally includes the establishment of the quality policy and quality objectives, quality planning, quality control, quality assurance and quality improvement.

Selenium Webdriver Commands list by www.jobinterviewquestionswithanswers.blogspot.in

Selenium Webdriver Commands list
Command                                               Description

driver.get("http://www.google.com"); To open an application
driver.findElement(By.id("passwd-id")); Finding Element using Id
driver.findElement(By.name("passwd")); Finding Element using Name
driver.findElement(By.xpath("//input[@id=’passwd-id’]")); Finding Element using Xpath
element.sendKeys("some text"); To type some data
element.clear(); clear thecontents of a text field or textarea
driver.findElement(By.xpath("//select")); Selecting the value
select.findElements(By.tagName("option")); Selecting the value
select.deselectAll(); This will deselect all OPTIONs from the first SELECT on the page
select.selectByVisibleText("Edam"); select the OPTION withthe displayed text of “Edam”
findElement(By.id("submit")).click(); To click on Any button/Link
driver.switchTo().window("windowName"); Moving from one window to another window
driver.switchTo().frame("frameName"); swing from frame to frame (or into iframes)
driver.switchTo().frame("frameName.0.child"); to access subframes by separating the path with a dot, and you can specify the frame by itsindex too.
driver.switchTo().alert(); Handling Alerts
driver.navigate().to("http://www.example.com"); To Navigate Paeticular URL
driver.navigate().forward(); To Navigate Forward
driver.navigate().back(); To Navigate Backword
driver.close() Closes the current window
driver.quit() Quits the driver and closes every associated window.
driver.switch_to_alert() Switches focus to an alert on the page.
driver.refresh() Refreshes the current page.
driver.implicitly_wait(30) Amount of time to wait
driver.set_script_timeout(30) The amount of time to wait
driver.get_screenshot_as_file('/Screenshots/foo.png') The full path you wish to save your screenshot to
driver.get_screenshot_as_base64() Gets the screenshot of the current window as a base64 encoded string which is useful in embedded images in HTML

100 Selenium Webdriver interview questions with answers by www.jobinterviewquestionswithanswers.blogspot.com

100 Selenium Webdriver interview questions with answers by http://jobinterviewquestionswithanswers.blogspot.in/



1.  Difference between Absolute path & Relative path.
Absolute path will start with root path (/) and Relative path will from current path (//)
Absolute xPath : /html/body/div[3]/div[2]/div[2]/div[2]/div[2]/div[2]/div[2]/div/div[4]/div[1]/div/div[@id='main']/div[@id='Blog1']/div[1]/div[1]/div/div[1]/div/h3/a

Relative xPath : //h3/a[text()='Working on New Window']
2.  Tell me some TestNG Annotations.
@Test,@Parameters,@Listeners,@BeforeSuite,@AfterSuite,@BeforeTest,@AfterTest,
@DataProvider,@BeforeGroups,@AfterGroups,@BeforeClass,@AfterClass,
@BeforeMethod,@AfterMethod,@Factory

3.  What are desired capabilities?
Desired Capabilities help to set properties for the Web Driver. A typical use case would be to
set the path for the Firefox Driver if your local installation doesn't correspond to the default
settings.
4.  Difference between Selenium RC and Selenium Web driver.
 Difference between Selenium RC and Selenium Web driver.

Selenium RC
Selenium Web driver
Selenium RC’s architecture is way more complicated.
Web Driver’s architecture is simpler than Selenium RC’s.
Selenium RC is slower since it uses a JavaScript program called Selenium Core.This Selenium Core is the one that directly controls the browser, not you.
Web Driver is faster than Selenium RC since it speaks directly to the browser uses the browser’s own engine to control it.
Selenium Core, just like other JavaScript codes, can access disabled elements.
Web Driver interacts with page elements in a more realistic way.
Selenium RC’s API is more matured but contains redundancies and often confusing commands.
Web Driver’s API is simpler than Selenium RC’s. It does not contain redundant and confusing commands.
Selenium RC cannot support the headless HtmlUnit browser. It needs a real, visible browser to operate on.
Web Driver can support the headless HtmlUnit browser.
Selenium RC Has Built-In Test Result Generator. Selenium RC automatically generates an HTML file of test results. 
Web Driver has no built-in command that automatically generates a Test Results File.
Selenium RC needs the help of the RC Server in order to do so.
web Driver directly talks to the browser
Selenium RC can support new browsers
It cannot readily support new browsers
5.  Difference between Web driver listener and  TestNG Listener.
TestNG and Web driver Listener have different interfaces to implement and call them. They both
modify respective behaviour. You can use Listeners in Annotation. Below 2 URL gives the
 detailed  list of listener and their interfaces.
6. Describe your framework.
Refer automation link
7.  Which is the best way to locate an element?
Finding elements by ID is usually going to be the fastest option, because at its root, it eventually calls down to document.getElementById(), which is optimized by many browsers.

Finding elements by XPath is useful for finding elements using very complex selectors, and is the most flexible selection strategy, but it has the potential to be very slow, particularly in IE. In IE 6, 7, or 8, finding by XPath can be an order of magnitude slower than doing the same in Firefox. IE provides no native XPath-over-HTML solution, so the project must use a JavaScript XPath implementation, and the JavaScript engine in legacy versions of IE really is that much slower.


If you have a need to find an element using a complex selector, I usually recommend using CSS Selectors, if possible. It's not quite as flexible as XPath, but will cover many of the same cases, without exhibiting the extreme performance penalty on IE that XPath can.
8.  Why we refer Firefox driver to the web driver  inheritance. 
web Driver driver = new FireFoxDriver();
WebDriver is an interface which contain several abstract methods such as get(...), findElamentBy(...) etc.
We simply create reference of web Driver and we can assign objects (Firefox driver, CromeDriver, IEDriver, Andriod driver etc) to it.
Ex :
WebDriver driver = new FireFoxDriver();-----------(1)
If we are using (1) we can do the same thing by using
FireFoxDriver driver = new FireFoxDriver();---------(2)
We can use (1) and (2) for same purpose but if we want to switch to another browser in same program
then again we have to create the object of other class as for example
CromeDriver driver = new CromeDriver();.
creating object of several class is not good. So we create the reference of WebDriver and
we assign the objects of another class as for example
WebDriver driver; // it is created only one time in the program
driver = new FireFoxDriver();// any where in the program
driver = new CromeDriver(); // any where in the program
9.  What are the features of TestNG?
TestNG is a testing framework designed to simplify a broad range of testing needs, from
unit testing (testing a class in isolation of the others) to integration testing (testing entire
systems made of several classes, several packages and even several external frameworks,
 such as application servers). You can use test suite,annotations, automatically generation
 of report and much more.
10.   What is the difference between thread.Sleep()  and selenium. Set Speed ("2000")?
If the application is taking time to load the page then we use selenium.waitforpageload(" "). This command is doesn’t wait upto the given time whenever the page load is completed.
If the application is taking time to refresh the page, then we use Thread. Sleep ( ).it is a standard wait it simply wait to the given time.
selenium.setSpeed
 1. Takes a single argument in string format
 Ex: selenium.setSpeed("2000") - will wait for 2 seconds
 2. Runs each command in after setSpeed delay by the number of milliseconds mentioned in set Speed.
 thread.sleep
 1. Takes a single argument in integer format
 ex: thread. Sleep(2000) - will wait for 2 seconds
 2. Waits for only once at the command given at sleep.

Download Next 90 Selenium webdriver interview  Questions and answers From 

https://drive.google.com/file/d/0B6bhRbDoX68pX3VjLV9kYzV3am8/edit?usp=sharing

Older Posts