Important Questions on Selenium
1. What do you know about Selenium?
Selenium
is a suite of tools for
web automation testing.
Selenium first came to life in
2004 when Jason Huggins was testing an internal application at
ThoughtWorks.
Selenium Suite includes:
Selenium
IDE
Selenium Core
Selenium 1 (known as. Selenium RC or Remote Control)
Selenium 2 (known as. Selenium Webdriver)
Selenium-Grid
Selenium Core
Selenium 1 (known as. Selenium RC or Remote Control)
Selenium 2 (known as. Selenium Webdriver)
Selenium-Grid
2. What are the technical challenges with selenium?
As you know Selenium is a
free ware open source testing tool. There are many challenges with Selenium.
1.
Selenium Supports only web based applications.
2. It doesn’t support any non web based (Like Win 32, Java Applet, Java Swing, .Net Client Server etc) applications
3. When you compare selenium with QTP, Silk Test, Test Partner and RFT, there are many challenges in terms of maintainability of the test cases
4. Since Selenium is a freeware tool, there is no direct support if one is in trouble with the support of applications
5. There is no object repository concept in Selenium, so maintainability of the objects is very high
6. There are many challenges if one have to interact with Win 32 windows even when you are working with Web based applications
7. Bitmap comparison is not supported by Selenium
8. Any reporting related capabilities, you need to depend on third party tools
9. You need to learn any one of the native language like (.Net, Java, Perl, Python, PHP, Ruby) to work efficiently with the scripting side of selenium
2. It doesn’t support any non web based (Like Win 32, Java Applet, Java Swing, .Net Client Server etc) applications
3. When you compare selenium with QTP, Silk Test, Test Partner and RFT, there are many challenges in terms of maintainability of the test cases
4. Since Selenium is a freeware tool, there is no direct support if one is in trouble with the support of applications
5. There is no object repository concept in Selenium, so maintainability of the objects is very high
6. There are many challenges if one have to interact with Win 32 windows even when you are working with Web based applications
7. Bitmap comparison is not supported by Selenium
8. Any reporting related capabilities, you need to depend on third party tools
9. You need to learn any one of the native language like (.Net, Java, Perl, Python, PHP, Ruby) to work efficiently with the scripting side of selenium
3. What are the test types supported by
Selenium?
Selenium could be used for testing
the web based applications. The test types can be supported are:
1. functional,
2. regression,
3. load testing
2. regression,
3. load testing
//The automation tool could
be implemented for post release validation with continuous integration tools
like:
1. Jenkins,
2. Hudson,
3. QuickBuild
4. CruiseCont
1. Jenkins,
2. Hudson,
3. QuickBuild
4. CruiseCont
4. What are the capabilities of Selenium IDE?
Selenium
IDE (Integrated Development Environment) works similar to commercial tools like QTP, Silk Test and Test Partner etc. The
below mentioned points describes well about Selenium IDE.
1.
Selenium IDE is a Firefox add-on.
2.
Selenium IDE can support recording
the clicks, typing, and other actions to make a test cases.
3.
Using Selenium IDE A Tester can play back the
test cases in the Firefox browser
4.
Selenium IDE supports exporting
the test cases and suites to Selenium RC.
5.
Debugging of the test cases with step-by-step
can be done
6.
breakpoint insertion is possible
7.
Page abstraction functionality is supported by
Selenium IDE
8.
Selenium IDE can supports an extensibility capability allowing the use of add-ons or
user extensions that
expand the functionality of Selenium IDE
5. What are the challenges with Selenium IDE?
Selenium-IDE does not
directly support:
1.
condition statements
2.
iteration
or looping
4.
error handling,
particularly unexpected errors
5.
database testing
6.
test
case grouping
7.
re-execution of failed tests
8.
test case dependency
9.
capture screenshots
on test failures
10. Results Report generations
6. Which are the browsers supported by
Selenium IDE?
Selenium
IDE supports only one browser Mozilla Firefox. The
versions supported as of now are:
Mozilla Firefox 2.x
Mozilla Firefox 3.x
Mozilla Firefox 3.x
The versions not supported as of now
are:
earlier versions of Mozilla Firefox 2.x
Mozilla Firefox 4.x
earlier versions of Mozilla Firefox 2.x
Mozilla Firefox 4.x
7. How to execute a single line command from
Selenium IDE?
Single line command from
Selenium IDE can be executed in two ways
8. How to insert a start point in Selenium
IDE?
Start point Selenium IDE
can be set in two ways
2. Select the command in
Selenium IDE and press "S" key on the keyboard
3. You can have only one start
point
4. If you have already set one
start point and you selected other command as start point. Then the first start point will be removed
and the new start point will be set
9. How to insert a comment in Selenium IDE?
Comments in Selenium IDE
can be set in two ways
1. Right click on the command in Selenium IDE and select
"Inert New Comment"
c. Assume that if you want to comment
a open command you need to write like below mentioned code
<tr>
<!--
<td>open&l/td>
<td>/node/304/edit&l/td>
<td></td>
<td>/node/304/edit&l/td>
<td></td>
-->
</tr>
10. How to insert a break point in Selenium
IDE?
Break point can be set in
two ways in Selenium IDE
1. Right click on the command in Selenium IDE and select
"Toggle Break Point"
2. Select the command in
Selenium IDE and press "B" key on
the keyboard
3. If you want to clear the break point once again press "B" key on
the keyboard
4. You can set multiple break points in Selenium IDE
11. How to debug the tests in Selenium IDE?
To
debug or execute the test cases line by line. Follow the below
mentioned steps
3. execution will be paused at the given
break point
5.
Click
on Run button, to continue executing all the commands at a time
12. How to export the tests from Selenium IDE
to Selenium RC in different languages?
From selenium IDE the test
cases can be exported into the languages
1.
.Net,
2. Java,
3. Perl,
4. Python,
5. PHP,
6. Ruby
2. Java,
3. Perl,
4. Python,
5. PHP,
6. Ruby
The below mentioned steps can explain how to export the
test cases
2. Select File -> Export Test Case As
13. How to export Selenium IDE Test Suite to Selenium RC Suites?
1.
.Net,
2. Java,
3. Perl,
4. Python,
5. PHP,
6. Ruby
2. Java,
3. Perl,
4. Python,
5. PHP,
6. Ruby
The below mentioned steps can explain how to export the
test suites
1.
Open the test case from Selenium IDE
2. Select File -> Export Test Suite As
2. Select File -> Export Test Suite As
14. Which is the command used for displaying the values of a variable into the output console or log?
If you
want to display a constant string. The below mentioned command can be used
echo <constant string>
ex: echo "The sample message"
echo <constant string>
ex: echo "The sample message"
If you
want to display the value of a variable it can be written like below
echo ${<variable name>>
echo ${<variable name>>
ex: echo ${var1}
Note: Here var1 is the variable
15. Which are the browsers supported by Selenium RC?
Supported browsers for Selenium RC include:
1. *firefox
2. *mock
3. *firefoxproxy
4. *pifirefox
5. *chrome
6. *iexploreproxy
7. *iexplore
8. *firefox3
9. *safariproxy
10. *googlechrome
11. *konqueror
12. *firefox2
13. *safari
14. *piiexplore
15. *firefoxchrome
16. *opera
17. *iehta
18. *custom
2. *mock
3. *firefoxproxy
4. *pifirefox
5. *chrome
6. *iexploreproxy
7. *iexplore
8. *firefox3
9. *safariproxy
10. *googlechrome
11. *konqueror
12. *firefox2
13. *safari
14. *piiexplore
15. *firefoxchrome
16. *opera
17. *iehta
18. *custom
Note: Any third party browser is supported with *custom
followed by the complete path of the
browser with executable
16. Which are the Operating Systems supported by Selenium?
Selenium IDE
Works in Firefox 2+ Start browser, run tests Run tests
Operating Systems Supported:
Works in Firefox 2+ Start browser, run tests Run tests
Operating Systems Supported:
1. Windows,
2. OS X
3. Linux
4. Solaris
5. Others whichever supports Firefox 2+
2. OS X
3. Linux
4. Solaris
5. Others whichever supports Firefox 2+
Selenium Remote Control
Used for starting browser and run tests
Operating Systems Supported:
Used for starting browser and run tests
Operating Systems Supported:
1. Windows,
2. OS X
3. Linux
4. Solaris
5. Others
2. OS X
3. Linux
4. Solaris
5. Others
Selenium Core
Used for running tests
Operating Systems Supported:
Used for running tests
Operating Systems Supported:
1. Windows,
2. OS X
3. Linux
4. Solaris
5. Others
2. OS X
3. Linux
4. Solaris
5. Others
17. What is Selenium RC?
Selenium-RC
is the solution for
tests that need a little more than just simple browser actions and a linear execution.
Selenium-RC leverages the full power of programming languages, creating tests that can do
things like read and write external files,
make queries to a database, send emails with
test reports, and practically anything else a user can do with a
normal application.
You will
want to use Selenium-RC whenever your test requires logic not supported by running a script from Selenium-IDE.
18. Why Selenium RC is used?
Selenium-IDE does not directly support:
1. condition statements
2. iteration
3. logging and reporting of test results
4. error handling, particularly unexpected errors
5. database testing
6. test case grouping
7. re-execution of failed tests
8. test case dependency
9. capture screenshots on test failures
2. iteration
3. logging and reporting of test results
4. error handling, particularly unexpected errors
5. database testing
6. test case grouping
7. re-execution of failed tests
8. test case dependency
9. capture screenshots on test failures
The reason behind why Selenium-IDE does not support the
above mentioned requirements is IDE supports only
HTML language. Using HTML language we cannot achieve the above mentioned
requirements. Because HTML does not support conditional, looping and external
source connectives.
To overcome the above
mentioned problems Selenium RC is used.
Since Selenium RC supports
the languages .Net, Java, Perl, Python, PHP, and Ruby. In these languages we
can write the programme to achieve the IDE issues
19. Which are the languages supported by Selenium RC?
The languages supported by Selenium RC
1. .Net,
2. Java (Junt 3, Junt 4, TestNG, Groovy)
3. Perl,
4. Python,
5. PHP,
6. Ruby
2. Java (Junt 3, Junt 4, TestNG, Groovy)
3. Perl,
4. Python,
5. PHP,
6. Ruby
20. What is Selenium Grid?
Selenium Grid is part of Selenium suite of projects. Selenium Grid transparently distribute your tests on multiple machines so that you can run your tests in parallel, cutting down the time required for running in-browser test suites. This will dramatically speeds up in-browser web testing, giving you quick and accurate feedback you can rely on to improve your web application.
21. What is Selenium WebDriver or Google WebDriver or Selenium 2.0?
WebDriver uses a different underlying framework from
Selenium’s javascript Selenium-Core. It also provides an alternative API with functionality
notsupported in Selenium-RC. WebDriver does not depend on a
javascript core embedded within the browser, therefore it is able to avoid some
long-running Selenium limitations.
WebDriver’s goal is to provide an API that
establishes
• A well-designed standard programming interface for web-app testing.
• Improved consistency between browsers.
• Additional functionality addressing testing problems not well-supported in Selenium 1.0.
• A well-designed standard programming interface for web-app testing.
• Improved consistency between browsers.
• Additional functionality addressing testing problems not well-supported in Selenium 1.0.
The Selenium developers strive
to continuously improve
Selenium. Integrating WebDriver is another step in that process. The developers
of Selenium and of WebDriver felt they could make significant gains for the
Open Source test automation community be combining forces
and merging their ideas and technologies. Integrating WebDriver into Selenium
is the current result of those efforts.
22. What are the capabilities of Selenium WebDriver or Google WebDriver or Selenium 2.0?
One should use WebDriver
when requiring improved support for
• Multi-browser testing including improved functionality for browsers not well-supported by Selenium-1.0.
• Handling multiple frames, multiple browser windows, popups, and alerts.
• Page navigation.
• Drag-and-drop.
• AJAX-based UI elements.
• Handling multiple frames, multiple browser windows, popups, and alerts.
• Page navigation.
• Drag-and-drop.
• AJAX-based UI elements.
23. What is the architecture of Selenium RC?
The
Selenium Server which launches and kills browsers, and acts as an HTTP proxy for
browser requests.
Client libraries
for various programming languages, each of which instructs the Selenium Server in how to test the AUT by passing it your test script’s Selenium
commands.
The diagram shows the client libraries
communicate with the Server passing each Selenium command for execution. Then
the server passes the
Selenium command to the browser using Selenium-Core JavaScript commands. The browser, using its
JavaScript interpreter, executes the Selenium command, which effectively, runs
the check you
specified in your Selenese test script.
25. Does Selenium support mobile internet testing?
Selenium supports Opera. And opera is used in most of
the Smart phones.
So whichever Smart phone supports
opera, selenium can be used to test. So, one can use Selenium RC to run the tests on
mobiles.
For more details on supported browsers of
Selenium
26. Does Selenium support Google Android Operating System?
Yes,
Selenium Web Driver or Google Web Driver or Selenium 2.0 supports Android Operating System. There are several libraries written to support Android Operating System.
27. What are the types of text patterns available in Selenium?
There are three types of patterns available in Selenium
1. globbing
2. regular expressions
3. exact
1. globbing
2. regular expressions
3. exact
28. How to use regular expressions in Selenium?
Regular expressions in Selenium IDE can be used with the
keyword - regexp:as a prefix
to the value and patterns needs to be included for the expected
values.
For
example if you want to use the regular expression for a command
Command: verifyText
Target: //font/font/b/font[1]
Value: Flight Confirmation # 2011-05-02451
Command: verifyText
Target: //font/font/b/font[1]
Value: Flight Confirmation # 2011-05-02451
in the
above example Flight Confirmation is continuously changing each time you run the test case. So
this can be written with a regular expression as mentioned
below
Command: verifyText
Target: //font/font/b/font[1]
Value: regexp:Flight Confirmation # [0-9]{4}-[0-9]{2}-[0-9]{5,10}
Target: //font/font/b/font[1]
Value: regexp:Flight Confirmation # [0-9]{4}-[0-9]{2}-[0-9]{5,10}
29. What are the regular expression patterns available in Selenium?
Selenium regular expression patterns offer the
same wide array of specialcharacters that exist in
JavaScript. Below are a subset of those special characters
PATTERN
|
MATCH
|
.
|
any single character
|
[ ]
|
character class: any single character that
appears inside the brackets
|
*
|
quantifier: 0 or more of the preceding character
(or group)
|
+
|
quantifier: 1 or more of the preceding
character (or group)
|
?
|
quantifier: 0 or 1 of the preceding
character (or group)
|
{1,5}
|
quantifier: 1 through 5 of the preceding
character (or group)
|
|
|
alternation: the character/group on the left
or the character/group on the right
|
( )
|
grouping: often used with alternation
and/or quantifier
|
30. What is Selenese?
There are three types of Selenese, those are:
1. Actions - used for performing the operations and interactions with the target elements
2. Assertions - used as check points
3. Accessors - used for storing the values in a variable
1. Actions - used for performing the operations and interactions with the target elements
2. Assertions - used as check points
3. Accessors - used for storing the values in a variable
31. How do you add check points or verification points in Selenium?
check points or verification points are known as
Assertions in Selenium. The keywords with below mentioned prefix will be used for adding check points or verification points.
1. verify
2. assert
3. waitFor
2. assert
3. waitFor
32. What is Assertion in Selenium?
Assertion is nothing but a check or verification point.
Assertion verifies the state of
the application conforms to what is expected.
Examples include “make sure the page title is X” and “verify that this checkbox is checked.
Examples include “make sure the page title is X” and “verify that this checkbox is checked.
33. What are the types of Assertions there in Selenium?
Selenium Assertions can be used in 3 modes:
1) assert
- When an “assert” fails, the test will be aborted. If you areexecuting test suite, the next state case will
start
2) verify - When a “verify” fails, the test will continue execution, logging the failure.
3) waitFor
- “waitFor” commands wait for some condition to become true (which can be useful
for testing Ajax applications). They will succeed immediately if the condition
is already true. However, they will fail and halt the test if the condition
does not become true within the current timeout setting
34. When to use Assert, Verify and WaitFor in Selenium?
1) assert - If the expected
value is mandatory to continue with the next set ofsteps we will use Assert. As Assert aborts the
test, if the expected value doesn't match. It is good to use for any mandatory
checks.
2) verify - If the expected value is optional to continue with the next set of steps we
will use verify. As
Verify continues executing with the next set of steps, if the expected
value doesn't match. It is good to use for any optional checks.
3) waitFor - If your test
needs to wait, if the expected value is not matchingwe
use waitFor. We normally use waitFor for AJAX kind of controls loading within a
page
35. What is an Accessor in Selenium?
Accessor is one of the type of Selenese.
Ex:
1) storeTitle - Stores the title of a window in a variable
1) storeTitle - Stores the title of a window in a variable
2) storeText - Stores the target element text
in a variable
II.
Accessors are also used for evaluating the result and storing the result in a variable
Ex: storeTextPresent - Evaluates whether the text is Present in thecurrent window. If the text is present stores true in the variable else stores false
Ex: storeEementPresent
- Evaluates whether the element is present in the current window. If the element is present
stores true in the variable else stores false
36. When to use Accessors in Selenium?
Accessors are mostly used for storing the value in a variable.
The variable can be used for following reasons:
1) To get the value from an
element and comparing with some dynamic value
2) To take a logical decision
to execute the test steps
ex: if the value of the variable true execute step1 and step2 else step3 and step4
ex: if the value of the variable true execute step1 and step2 else step3 and step4
3) To execute some statements in a loop based on the value returned by the element
37. How to capture bitmaps in Selenium?
Bitmaps
are captured using
the Selenium set of commands. There are two modes of capturing the bitmaps
1) Capture the bitmap for the entire page - it captures the browser main page area of AUT
2) Capture the bitmap for the screen shots - it captures the entire screen shot like the print scree that you give from your keyboard
2) Capture the bitmap for the screen shots - it captures the entire screen shot like the print scree that you give from your keyboard
Selenium doesn't support bitmap capturing for
an element on AUT.
38. Which are the commands used for capturing the bitmaps?
captureEntirePageScreenshot
Saves the entire contents of the current window canvas to a PNG file. Contrast this with the captureScreenshot command, which captureS the contents of the OS viewport (i.e. whatever is currently being displayed on the monitor), and is implemented in the RC only. Currently this only works in Firefox when running in chrome mode, and in IE non-HTA using the EXPERIMENTAL "Snapsie" utility. The Firefox implementation is mostly borrowed from the Screengrab! Firefox extension. Please seecaptureEntirePageScreenshot for more details
Saves the entire contents of the current window canvas to a PNG file. Contrast this with the captureScreenshot command, which captureS the contents of the OS viewport (i.e. whatever is currently being displayed on the monitor), and is implemented in the RC only. Currently this only works in Firefox when running in chrome mode, and in IE non-HTA using the EXPERIMENTAL "Snapsie" utility. The Firefox implementation is mostly borrowed from the Screengrab! Firefox extension. Please seecaptureEntirePageScreenshot for more details
captureEntirePageScreenshotAndWait
Saves the entire contents of the current window canvas to a PNG file. Contrast this with the captureScreenshot command, which captures the contents of the OS viewport (i.e. whatever is currently being displayed on the monitor), and is implemented in the RC only. Currently this only works in Firefox when running in chrome mode, and in IE non-HTA using the EXPERIMENTAL "Snapsie" utility. The Firefox implementation is mostly borrowed from the Screengrab! Firefox extension. Please see
captureEntirePageScreenshotAndWait for details.
Saves the entire contents of the current window canvas to a PNG file. Contrast this with the captureScreenshot command, which captures the contents of the OS viewport (i.e. whatever is currently being displayed on the monitor), and is implemented in the RC only. Currently this only works in Firefox when running in chrome mode, and in IE non-HTA using the EXPERIMENTAL "Snapsie" utility. The Firefox implementation is mostly borrowed from the Screengrab! Firefox extension. Please see
captureEntirePageScreenshotAndWait for details.
Note: This command runs with only mozilla firefox when you run the tests from RC.
Other browsers it will not support
39. What is the difference between captureEntirePageScreenshot and CaptureScreenShot?
captureEntirePageScreenshot
1. This captures the AUT web page only
2. This supports only mozilla firefox
3. Accepts two arguments. one is the file name to be saved and otherargument is back ground color
1. This captures the AUT web page only
2. This supports only mozilla firefox
3. Accepts two arguments. one is the file name to be saved and otherargument is back ground color
CaptureScreenShot
1. This
captures the System screen shot
2. This supports all the browsers when you run from Selenium RC
3. Accepts one argument. That is the file name to be saved.
2. This supports all the browsers when you run from Selenium RC
3. Accepts one argument. That is the file name to be saved.
40. How do you set user extensions in Selenium IDE?
1. Open
user-extensions.js with an editor (Notepad, etc.); it's found in the
selenium\core\scripts folder. If it doesn't exist, just create it.
2. If you need to, commit the user-extensions.js file (like if you use subversion).
3. Open Selenium IDE and choose the Options menu and then Options... from that menu.
4. Make sure the path to your user-extensions.js file is entered in the Selenium Core extensions field (like \selenium\core\scripts\user-extensions.js)
5. Press OK button on options
6. Restart the IDE to reflect your extensions.
2. If you need to, commit the user-extensions.js file (like if you use subversion).
3. Open Selenium IDE and choose the Options menu and then Options... from that menu.
4. Make sure the path to your user-extensions.js file is entered in the Selenium Core extensions field (like \selenium\core\scripts\user-extensions.js)
5. Press OK button on options
6. Restart the IDE to reflect your extensions.
Note: After
reopen, Selenium IDE may show compilations errors if the user-extensions.js file
has any syntax errors.
41. What are the limitations of Selenium IDE?
The limitations of Selenium IDE are:
1)
Selenium IDE uses only HTML language
2)
Conditional or
branching statements execution like using of if, select statements is
not possible
3)
Looping statements using is not possible
directly in Selenium HTML language in ide
4)
Reading from external files like .txt, .xls is not possible
5)
Reading from the external databases is not possible with ide
6)
Exceptional handling is not there
7)
A neat formatted Reporting is not possible with ide
To eliminate the above issues we use Selenium
RC
No comments:
Post a Comment