Top 50 Selenium Ide Interview Questions You Must Prepare 25.Apr.2024

The command used for displaying the values of a variable into the output console or log – echo 
If you want to display a constant string.

The below mentioned command can be used
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>>
ex: echo ${var1}
Note: Here var1 is the variable

The languages supported by Selenium RC:

  1. .Net,
  2. Java (Junt 3, Junt 4, TestNG, Groovy)
  3. Perl,
  4. Python,
  5. PHP,
  6. Ruby

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.

Selenium Assertions can be used in 3 modes:

  1. assert – When an “assert” fails, the test will be aborted. If you are executing 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

Start point Selenium IDE can be set in two ways:

  1. Right click on the command in Selenium IDE and select “Set / Clear Start Point”
  2. Select the command in Selenium IDE and press “S” key on the keyboard
    • You can have only one start point
    • 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

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
    • If you want to clear the break point once again Spress “B” key on the keyboard
    • You can set multiple break points in Selenium IDE

 It has Record and Playback features to create and execute Test cases

  • User/Tester can type Test steps using element locators and Selenese commands without using Recording feature.
  • Debugging feature for debugging test cases.
  • It has an option of asserting title of every page automatically.
  • Option to run single test or multiple tests(Test suite).
  • It has a feature of exporting testcase/suite into different formats like C#, Java, Ruby, Python

Selenium IDE supports only one browser Mozilla Firefox.

The versions supported as of now are:

  • Mozilla Firefox 2.x
  • Mozilla Firefox 3.x

The versions not supported as of now are:

  • earlier versions of Mozilla Firefox 2.x
  • Mozilla Firefox 4.x

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 Thought Works. Selenium was a tremendous tool, it wasn’t without its drawbacks. Because of its JavaScript based automation engine and the security limitations browsers apply to JavaScript, different things became impossible to do.

Selenium Suite of projects includes:

  • Selenium IDE
  • Selenium Core
  • Selenium 1 (known as Selenium RC or Remote Control)
  • Selenium 2 (known as Selenium Web driver)
  • Selenium-Grid

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

One should use WebDriver when requiring improved support for

  • Mult-browser testing including improved functionality for browsers not well-supported by Selenium-1.@
  • Handling multiple frames, multiple browser windows, popups, and alerts.
  • Page navigation.
  • Drag-and-drop.
  • AJAX-based UI elements.

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 support an extensibility capability allowing the use of add-ons or user extensions that expand the functionality of Selenium IDE

Yes, we can edit recorded Test cases, Add Steps, Delete steps, edit steps and Insert comments.

Comments in Selenium IDE can be set in two ways:

  1. Right click on the command in Selenium IDE and select “Inert New Comment”
  2. If you want to comment an existing line. You need to follow the below mentioned steps.
    • Select the source tab in IDE
    • Select the line which you want to comment
    • 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>
–>
</tr>

Important Commands are:

Open, click, type, select, assertText, assertTitle, assertTextPresent, verifyText, verifyTextPresent, veriftTitle, waitForText, waitForTextPresent, waitForTitle, store, storeText, storeTitle, check, uncheck, pause, mouseover, etc...

  • When an "assert" command fails then test execution will be aborted.
  • When a "verify" command fails then test will continue execution and logging the failure.

  1. Open user-extensions.js with an editor (Notepad, etc.); it’s found in the seleniumcorescripts 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 seleniumcorescriptsuser-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.

Single line command from Selenium IDE can be executed in two ways:

  1. Right click on the command in Selenium IDE and select “Execute This Command”
  2. Select the command in Selenium IDE and press “X” key on the keyboard

In the Selenium IDE options, check "Record Absolute URL" option.

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

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}

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.

Selenium-IDE does not directly support:

  1. Condition statements
  2. Iteration or looping
  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
  10. Results Report generations

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.

Selenium IDE

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+

Selenium Remote Control

Used for starting browser and run tests

Operating Systems Supported:

  1. Windows,
  2. OS X
  3. Linux
  4. Solaris
  5. Others

Selenium Core

Used for running tests

Operating Systems Supported:

  1. Windows,
  2. OS X
  3. Linux
  4. Solaris
  5. Others

From selenium IDE the test suites can be exported into the languages as mentioned below

  1. .Net
  2. Java
  3. Perl
  4. Python
  5. PHP
  6. Ruby

The below mentioned steps can explain how to export the test suites:

  • Open the test case from Selenium IDE
  • Select File -> Export Test Suite As

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. 

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.

Note: This command runs with only mozilla firefox when you run the tests from RC. Other browsers it will not support

Selenium IDE is firefox ad on, so it runs on Firefox browser.

Selenium set of commands which are used for running the test are called as 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

Selenium regular expression patterns offer the same wide array of special characters that exist in JavaScript.

Below are a subset of those special characters:

.: 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

  1. assert – If the expected value is mandatory to continue with the next set of steps 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 matching we use waitFor. We normally use waitFor for AJAX kind of controls loading within a page

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

Selenium doesn’t support bitmap capturing for an element on AUT.

From selenium IDE the test cases can be exported into the languages

  1. .Net
  2. Java
  3. Perl
  4. Python
  5. PHP
  6. Ruby

The below mentioned steps can explain how to export the test cases:

  1. Open the test case from Selenium IDE
  2. Select File -> Export Test Case As

  • 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.

WebDriver uses a different underlying framework from Selenium’s javascript Selenium-Core. It also provides an alternative API with functionality not supported 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.@

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.

To debug or execute the test cases line by line.

Follow the below mentioned steps:

  1. Insert a break From the location where you want to execute step by step
  2. Run the test case
  3. Execution will be paused at the given break point
  4. Click on the step (Blue) button to continue with the next statement
  5. Click on Run button, to continue executing all the commands at a time

Accessors are mostly used for storing the value in a variable.

The variable can be used for following reasons:

  • To get the value from an element and comparing with some dynamic value
  • 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
  •  To execute some statements in a loop based on the value returned by the element

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

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

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 other argument 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.

Selenium could be used for testing the web based applications.

The test types can be supported are:

  1. Functional,
  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. Quick Build
  4. CruiseCont

There are three types of patterns available in Selenium:

  1. globbing
  2. regular expressions
  3. exact

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

That triangle indicates that test paused at that step, or will start from that step.

Absolute URL means the URL starts with http or https. Selenium IDE addes the argument in the open statement and create an absolute URL

Relative URL means that in BaseURL, we can put the main domain, and in the open statment, user should put relative URL; 

For example, if main url is http://mysite.com, in the relative url, we can put http://beta.mysite.com in the open statement.

We need to set a break point in the test, so the test will pause at the break point.

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