Thursday 19 December 2013

100 Selenium Interview Questions

100 Selenium Interview Questions
  
 1.  Difference between Absolute path & Relative path.
Absolute path will start with root path (/) and Relative path will from current path (//)

2.  Tell me some TestNG Annotations.
@Test,@Parameters,@Listeners,@BeforeSuite,@AfterSuite,@BeforeTest,@AfterTest,
@DataProvider,@BeforeGroups,@AfterGroups,@BeforeClass,@AfterClass,
@BeforeMethod,@AfterMethod,@Factory

3.  What are desiredcapabilities?
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.

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.


7.  Which is the best way to locate an element?

8.  Why we refer Firefox driver to the web driver
 inheritance. 

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")?

11.   In what situation selenium finding element 
get fails?
·         Element loading issue
·         Dynamic id of web element

12.   What is the difference between "GET" and
"NAVIGATE" to open a web page in selenium 
web driver?
Get method will get a page to load or get page source or get text that's all whereas navigate
 will guide  through the history like refresh, back, forward.For example if we want to move 
forward and do some functionality and back to the home page this can be achieved 
through navigate() only. driver.get will wait  till the whole page gets loaded and driver.navigate 
will just redirect to that page and will not wait

13.   Please tell me the difference b/w implicitly 
Wait and Explicit wait.

14.   How we can retrieve the dynamically changing 
Ids? When we login Facebook the login label's id 
changes dynamically thus resulting in failure.
We have a hierarchy of locators and Facebook Is dynamic in nature,so we are not able to 
use "id" for  identification for after that we have remaining 7 locator's for that :2. xpath ()..
3. name..4. css.. 5. link text.. 6. partiallinktext...7.tag name. so u can use any one for
 identifying it. Most probably u can use "xpath" or  "css-locator" and if there r tag then 
link text or partial-link text. it depend on u . But we never use id's in Ajax application
 because it’s not possible.

15.What is the difference between driver.Close()
 and driver.Quit () method?
Close() - It is used to close the browser or page currently which is having the focus.
Quit() - It is used to shut down the web driver instance or destroy the web driver instance
(Close all the windows)

16.   How to scroll web element?--not browser—

17.   What is the basic use of Firefox profiles and 
how can we use them using selenium?
A profile in Firefox is a collection of bookmarks, browser settings, extensions, passwords, 
and history; in short, all of your personal settings.
We use them to change user agent, changing default download directory, changing versions etc.

18.   Customize the name of file going to be 
downloaded?
You have to download AUTO IT.exe file and has to be install
and later you have create .au3 file (in this file you have to specify the commands in
 VB script  like your file  name, where have to save, it will be easy may be 3 or 4 steps ) 
using AUTOIT...then right click the .au3 file you have to compile ....after that you will 
get the .exe file with the name of .au3 file ..In eclipse you will give the code like this
<----ProcessBuildder ps = new ProcessBuilder("path of the .exe file of au3") .start();--->


19.   How to handle internationalisation through
 web driver?
FirefoxProfile profile = new FirefoxProfile();
profile.set Preference("intl.accept_languages","jp");
Web driver driver = new FirefoxDriver(profile); driver.get(google.com) will open google in 
Japanese Lang

20.   How to overcome same origin policy through 
web driver?
·         Proxy server.
DesiredCapabilities capability=new DesiredCapabilities.firefox();
capability.setCapability(CapabilityType.PROXY,"your desire proxy")
WebDriver driver=new FirefoxDriver(capability);

21. How to put text in Facebook search box using 
selenium web driver.
·         driver.findElement(By.xpath("//div[contains(@class, '_586i')]")).sendKeys("abc");


22. Difference between flex and flash application.
In flash there is no code just based on creativity(design) we will complete the 
work(time consuming process) whereas flex contain some small functions 
which is integrated with mxml,PHP..(no tool is there to develop
 flex we want to use the properties of css and style sheet)

23. What is Error Collector in TestNG? 
What is its use?
This class allows the collection of errors during the process of retrieving the 
test data for the test method parameters


24. How can we get the font size, font color, 
font type used  for a particular text on a web
page using Selenium web driver?
driver.findelement(By.Xpath("Xpath ").getcssvalue("font-size);
driver.findelement(By.Xpath("Xpath ").getcssvalue("font-colour);
driver.findelement(By.Xpath("Xpath ").getcssvalue("font-type);
driver.findelement(By.Xpath("Xpath ").getcssvalue("background-colour);

25. How to run tests in multiple browser parallel?
 Is there  any other option other than selenium grid?

26. How to prepare Customized html Report using
 TestNG  in hybrid framework.
Below are the 3 ways:
• Junit: with the help of ANT.
• TestNG: using inbuilt default.html to get the HTML report. Also XST reports from ANT,
Selenium, TestNG combination.
• Using our own customized reports using XSL jar for converting XML content to HTML.

27. “What’s the hierarchy of TestNG annotations? 
Explain me about annotation hierarchy & execution
 order?

28. How the TestNG interacts with Selenium Core?
Explain me steps and internal architecture?"

29. Is it possible test web services using selenium?
Using Jmeter we can test how one website is talking to each other means time taken to 
send data, feeds, messages from one website to other website. Jmeter does a nice job 
of doubling for performance and api tests.

30. How to refresh a page without using context 
click?
1.Using sendKeys.Keys method
2.Using navigate.refresh() method
3.Using navigate.refresh() method
4.Using get() method
5.Using sendKeys() method

31. Can u send a code for printing in selenium?
There are two cases:
Case1. Any hyperlink/button on a web page, n clicking that link/button a print dialog box 
opens. (Performing an action on web page)
Case2.or do u want to open print dialog box within ur own script, not by performing any 
action on web page.
So If Case 1: just a call for WebElement.click() event will work to open it.
If Case 2: Call a Printer Job object (Use Awt API).
For code: Google it.

32. How to find broken images in a page using 
Selenium Web driver.
1. Get xpath and then using tag name; get all the links in the page
2. Click on each and every link in the page
3. In the target page title, look for 404/500 error.

33. How to handle Ajax popup window?
By using getWindowHandles() and obj.switchTo.window(windowid) we can handle popups using 
explicit wait and driver.swtchT0.window("name") commands for your requirements.

34. How to handle auto complete box in web driver?
By typing in box and capturing list elements

35. How to get the name of browser using Web Driver?

36. How to handle colors in web driver?
Use getCssValue(arg0) function to get the colors by sending 'color' string as an argument.
Example
String col = driver.findElement(By.id(locator)).getCssValue("color");

37. How to pass parameters from testng.xml into
 test case.

38. How to get text from captcha image??
driver.findElement(By.xpath(".//*[@id='SkipCaptcha']")).click();
String attr = ie.findElement(By.xpath(".//*[@id='SkipCaptcha']")).getAttribute("value");
System.out.println("The value of the attribute 'Name' is " + attr);

39. Is there a way to click hidden LINK in web driver?
String Block1 = driver.findElement(By.id("element ID"));
JavascriptExecutor js1=(JavascriptExecutor)driver;
js1.executeScript("$("+Block1+").css({'display':'block'});");

40. What Class Extends Web Driver?
·   AndroidDriver, ChromeDriver, EventFiringWebDriver, FirefoxDriver, HtmlUnitDriver, 
InternetExplorerDriver, IPhoneDriver, PhantomJSDriver, RemoteWebDriver, SafariDriver

41. What are the APIs that support Web Driver?
·         API are  nothing but collection of all selenium commands for Locating UI Elements 
(WebElements),Fetching a Page,User Input  etc…

42. How to disable cookies in browser.
·         Using deleteAllVisibleCookies() in selenium

43. "We have heard about frameworks well it can be
 broadly classified into these TDD, BDD and ATDD frameworks .What’s the Difference?"

44. How to change user agent in Firefox by selenium
 web driver.
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("general.useragent.override", "some UA string");
Web Driver driver = new FirefoxDriver(profile);

45. What is Selenese?
Selenese is HTML language based command, which is used in Selenium IDE.

46. Differences between QTP and selenium.

47. What is the MOST challenging test problem in my 
career in Automation?
In my career
·         Changing XPATHS' between testing server and production server-by keeping generic xpath
·         Keep separate property files for production and UAT
·         automating flash apps
·         Mobile Automation

48. “Suppose developer changed the existing image to 
new image with same xpath. Is test case pass or fail?"
·         Pass

49. How to handle network latency using selenium? 
·         Using driver.manage.pageLoadingtime for network latency

50. How does u handle dynamic elements without using
 xpath (with example?)
·         By using classname or css.

51. What are the different types of driver implementation?
·         AndroidDriver, AndroidWebDriver, ChromeDriver, EventFiringWebDriver, FirefoxDriver, HtmlUnitDriver, InternetExplorerDriver, IPhoneDriver, IPhoneSimulatorDriver, RemoteWebDriver, SafariDriver, WebDriverBackedSelenium

52. Code for Opening Firefox browser?
·         Webdriver driver=new FireFoxdriver();

53. Which repository you have used to store the test
 scripts?
I have created scripts in excel file and store them in Test cases folder under src .

54. How to work with radio button in web driver?

55. How to work with dynamic web table?
You can get the total number of <tr> tags within a <td> tag by giving the xpath of the
 <td> element by using  this function -
List<WebElement> ele = driver.findElements(By.xpath("Xpath of the table"));
Now you can use a for each loop to loop through each of the <tr> tags in the above list 
and then read each  value by using getText() method.

56. Detail about TestNG Test Output folder.
It is the directory where reports are generated. Every time tests run in a suite, TestNG 
creates index.html and  other files in the output directory.

57. In frame if no frame Id as well as no frame
 name then which attribute I should consider 
throughout our script.
You can go like this.....driver.findElements(By.xpath("//iframe"))...
Then it will return List of frames then switch to each and every frame and search for
 the locator which you want then break the loop

58. What is object repository?
It is collection of object names their properties, attributes and their values .It maye be
 excel, XML,property file or text file

59. TestNG vs. Junit?

60. What is the difference between @before 
method and @beforeclass.
In JUnit4 @Before is used to execute set of preconditions before executing a test. 
 For example, if there is a need to open some application and create a user before 
executing a test, then this annotation can be used for that method.  Method that is 
marked with @Before will be executed before executing every test in the class.
If a JUnit test case class contains lot of tests which all together need a method 
which sets up a precondition  and that needs to be executed before executing the 
Test Case class then we can utilise “@BeforeClass” annotation.

61. What are the different Parameters for @Test 
annotation? 
Parameters are keywords that modify the annotation’s function.

62. Can we run group of test cases using TestNG?
Test cases in group in Selenium using TestNG will be executed with the below options.
 If you want to execute the test cases based on one of the group like regression test or smoke test
 @Test(groups = {"regressiontest", "smoketest"})


63. Differences between Selenium web driver, 
IDE and RC?

64. How to highlight an object like qtp/uft does 
through selenium and java?

65. What are the different assertions in SIDE?
Assertions are like Assessors, but they verify that the state of the application conforms
 to what is expected. Examples include "make sure the page title is X" and "verify that this
 check box is checked".

66. How to store a value which is text box using 
web driver?
driver.findElement(By.id("your Textbox")).sendKeys("your keyword");

67. How to handle alerts and confirmation boxes.
Confirmation boxes and Alerts are handled in same way in selenium.
var alert = driver.switchTo().alert();
alert.dismiss();  //Click Cancel or Close window operation
alert.accept();   //Click OK
Handle Confirmation boxes via JavaScript,
driver.executeScript("window.confirm = function(message){return true;};");

68. How to mouse hover on an element?
Actions action = new Actions(webdriver);
WebElement we = webdriver.findElement(By.xpath("html/body/div[13]/ul/li[4]/a"));
action.moveToElement(we).moveToElement(webdriver.findElement(By.xpath("/expression-here"))).click().build().perform();

69. How to switch between the windows?
private void handlingMultipleWindows(String windowTitle) {
            Set<String> windows = driver.getWindowHandles();
            for (String window : windows) {
                driver.switchTo().window(window);
                if (driver.getTitle().contains(windowTitle)) {   return;   }     }     }


70. How to switch between frames?

71. What is actions class in web driver?
Actions class with web Driver help is Sliding element, Resizing an Element, Drag & Drop,
hovering a mouse, especially in a case when dealing with mouse over menus.

72. Difference between the selenium1.0 and 
selenium 2.0?
Selenium 1 = Selenium Remote Control.
Selenium 2 = Selenium Web driver, which combines elements of Selenium 1 and Web driver.

73. Difference between find element () and 
findelements ()?
findElement() :
Find the first element within the current page using the given "locating mechanism".
Returns a single WebElement.
findElements() :
Find all elements within the current page using the given "locating mechanism".
Returns List of Web Elements.

74. How to take the screen shots in seelnium2.0?


75. What is the default time for selenium Ide and 
webdriver?
Default timeout in selenium ide is 30 seconds.
For web driver go to below URL:


76. Write down scenarios which we can't automate?
Barcode Reader, Captcha etc.

77. In TestNG I have some test's  Test1-Test2-
Test3-Test4-Test5I want to run my execution 
order is Test5-Test1-Test3-Test2-Test4.How 
do you set the execution order can you explain 
for that?
·         Use priority parameter in @test annotation or TestNG annotations.

78. Differences between jxl and ApachePOI.
·         jxl does not support  XLSX files
·         jxl exerts less load on memory as compared to ApachePOI
·         jxl doesn't support rich text formatting while ApachePOI does.
·         jxl has not been maintained properly while ApachePOI is more up to date.
·         Sample code on Apache POI is easily available as compare to jxl.


79. How to ZIP files in Selenium with an Example?

80. What is default port no?
4444

81. If Default port no is busy how to change port no?
We can use any port number which is valid.. First create an object to remote control configuration. 
Use 'setPort' method and provide valid port number(4545,5555,5655, etc).. There after attach this 
remote control configuration object to selenium server..i.e
RemoteControlConfiguration r= new RemoteControlConfiguration();
r.setPort(4567);
SeleniumServer s= new SeleniumServer(r);

82. Does Selenium support https protocols?
Yes
83. Majorly asked test scenario with framework in 
Interviews?
Majorly asked are:
·         Login for Gmail scenario
·         Goggle search and finding no of results
·         Downloading a file and save it
·         Checking mails and deleting them
·         Do shopping in flipkart.com

84. Selenium support mobile applications?
No, it is browser automation tool, it only automates Websites opening in mobile browser, and mobile APPs
 can't be automated.

85. What is wraps Driver?
For casting selenium instance to selenium2 (webdriver). wraps driver is used.
For more details.

86. Can you explain Junit Annotation? If there are 
1000 test cases. 500 test cases are executed. How
 will you execute the rest of the test cases by using annotation?"
The annotations generated with JUnit 4 tests in Selenium are:
 1. @Before public void method() - Will perform the method() before each test. This method
 can prepare the  test
 2. @Test public void method() - Annotation @Test identifies that this method is a test 
method.environment,e.g. read input data, initialize the class)
 3. @After public void method() - Test method must start with test@Before - this annotation
 is used for  executing a method before

87. Difference between assert and verify in selenium
 web driver.
·         When an “assert” fails, the test will be aborted. Assert is best used when the
 check value has to pass for  the test to be able to continue to run log in.
·         Where if a “verify” fails, the test will continue executing and logging the failure. 
Verify is best used to  check non critical things. Like the presence of a
 headline element.

88. "I want to find the location of ""b"" in the below
 code, how can I find out without using xpath, name,
 id, csslocator, index.<div>
<Button>a</button>
<Button>b</button>
<Button>c</button>
</div>
    ·      driver.findElement(By.xpath("//*[contains(text(),'b')]")).click(); or
·        //div/button[contains(text(),'b']
·      

89. How to do Applet testing using selenium? 
Please see below URLs:

90.  Name 5 different exceptions you had in 
selenium web driver and mention what instance 
you got it and how do you resolve it?
·         WebDriverException
·         NoAlertPresentException
·         NoSuchWindowException
·         NoSuchElementException
·         TimeoutException

91. How do you manage the code versions in 
your project?
·         Using SVN or other versioning tools 

92. Latest version of Firefox and selenium in 
market and the version on which you are testing
 which you are testing.
·         FF Latest version till Dec,2013 for windows7,64 bit :26.0.I use FF 25.0.1 (ur ans. may differ)
·         Selenium web driver latest version till dec,2013- 2.39.0 I use selenium 2.37 see latest at
           http://www.seleniumhq.org/download/

93. How to know all the methods supported in 
web driver 
and its syntax. 
·         In Org.openqa.selenium package, web driver interface has all the main methods that can
be used in Selenium Web driver

94. How do you create html test report from 
your test script? 
• I would see below 3 ways:
• Junit: with the help of ANT.
• TestNG: using inbuilt default.html to get the HTML report. Also XLST reports from ANT,
Selenium, TestNG combination.
• Using our own customized reports using XSL jar for converting XML content to HTML.

95. List the browsers, OS supported by the Selenium
Windows Linux Mac
IE Y NA NA
FF Y Y Y
Safari Y N Y
Opera Y Y Y
Chrome Y Y Y

96. Can you explain Selenium Mobile Automation?

97. What mobile devices it may Support?
Selenium Web driver supports all the mobile devices operating on Android, IOS operating Systems
·         Android – for phones and tablets (devices & emulators)
·         iOS for phones (devices & emulators) and for tablets (devices & emulators)


98. What is the difference between single and
 double slash
 in Xpath?

99. What are the test types supported by Selenium?
Selenium supports UI and functional testing. As well it can support performance testing
for reasonable load using selenium grid.

100. In what all case we have to go for 
“JavaScript executor”.
Consider FB main page after you login. When u scrolls down, the updates get loaded. To
 handle this activity, there is no selenium command. So you can go for javascript to set 
the scroll down value like driver.executeScript("window.scrollBy(0,200)", "");