Top 27 Selenium Rc Interview Questions You Must Prepare 26.Apr.2024

selenium.setSpeed

takes a single argument in string format

ex: selenium.setSpeed("2000") - will wait for 2 seconds

Runs each command in after setSpeed delay by the number of milliseconds mentioned in setSpeed.

thread.sleep:

takes a single argument in integer format

ex: thread.sleep(2000) - will wait for 2 seconds

Waits for only once at the command given at sleep.

Selenium IDE have limitations in terms of browser support and language support. By using Selenium RC limitation can be diminished.

On different platforms and different web browser for automating web application selenium RC is used with languages like Java, C#, Perl, Python.

Selenium RC is a java based and using any language it can interact with the web application.

Using server you can bypass the restriction and run your automation script running against any web application.

Advantages of RC are:

  • Can read or write data from/ to .xls, .txt, etc
  • It can handle dynamic objects and Ajax based UI elements
  • Loops and conditions can be used for better performance and flexibility
  • Support many Programming languages and Operating Systems
  • For any JAVA script enabled browser Selenium RC can be used

SeleneseTestCase is the class which is having

  1. AssertTrue
  2. VerifyTrue
  3. AssertEquals
  4. VerifyEquals

We use SeleneseTestCase class to extend the selenium test class file.

For Ex: the test class is declared as follows

public class BookFlightSel1 extends SeleneseTestCase

In the above example SeleneseTestCase is the base class and BookFlightSel1 is the derived class. So, we can directly call and use the parent class methods verify and assert without instantiating the class in BookFlightSel1 class.

To handle network latency you can use driver.manage.pageloadingtime for network latency.

To enter values into text boxes we can use command sendkeys().

Apart from “same origin policy” restriction from js, Selenium is also restricted from exercising anything that is outside browser.

A collection of libraries and classes is known as Framework and they are helpful when testers has to automate test cases. NUnit, JUnit, TestNG, Bromine, RSpec, unittest are some of the frameworks available in RC .

The annotations generated with JUnit 4 tests in Selenium are:

@Before public void method(): Will perform the method() before each test. This method can prepare the test

@Test public void method(): Annotation @Test identifies that this method is a test method.environment, e.g. read input data, initialize the class)

@After public void method():Test method must start with test@Before - this annotation is used for executing a method before.

The prerequisites to run Selenium RC tests with Junit:

Jre 1.5 or better version needs to be installed

/jre/bin folder must be added in environment variable "path"

Junit folder path must be added to path or build path in eclipse

Selenium Java Client drivers needs to be added to the path for execution

The command used is

java -jar selenium-server.jar - Extensions user-extensions.js

Note: In this case, the java script file user-extensions.js file name should always fixed. If the name or extension is changed the selenium rc server will not start.

To identify an object using Selenium you can use isElementPresent(String locator) isElementPresent takes a locator as the argument and if found returns a Boolean.

The challenges with Selenium RC test suites when running in JUnit

  1. Each test case of Selenium RC test will invoke the browser and closes after playing back
  2. All the Test cases cannot run on a single browser session
  3. If there is any dependency between the test cases, it is very difficult to execute
  4. Running the test suites in junit will be helpful for only independent test cases.

Note: The dependent test case related issues can be addressed by using TestNG with junit

At predefined time selenium grid hub keeps polling all RC slaves to make sure it is available for testing. The deciding parameter is called “remoteControlPollingIntervalSeconds” and is defined in “grid_configuration.yml”file.

The procedure followed to run the Selenium RC Server is:

Open the command prompt.

Change the folder path to Selenium RC Server

Issue the command "java -jar selenium-server.jar"

The @Test should be followed by (dependsOnMethods = "testLogin")

Note:- The test case will be executed after the testLogin case

Ex: @Test(dependsOnMethods = "testLogin")

If you want full automation against different server and client platforms, You need a way to invoke the tests from a command line process, reports that tells you what happened and flexibility in how you create your test suites. TestNG gives that flexibility.

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 = {"regression test", "smoke test"})

You can run Selenium server on java-jar selenium-server.jar-port other than its default port.

You can run the selenium commands in RC slow motion by two ways:

  • selenium.setSpeed
  • thread.sleep

Selenium IDE does not directly support many functions like condition statements, Iteration, logging and reporting of test results, unexpected error handling and so on as IDE supports only HTML language. To handle such issues Selenium RC is used it supports the language like Perl, Ruby, Python, PHP using these languages we can write the program to achieve the IDE issues.

The limitations of selenium RC are:

  • Switching between the multiple instances of the same browser is not possible.
  • Switching between the multiple instances of the different browsers is not possible.
  • Browser navigation, like back and forward button emulations is not possible.
  • Limited features in terms of drag and drop of objects.
  • To work with Ajax based UI elements there are very limited features are there with Selenium RC.
  • To overcome the above limitations we use selenium web driver or google web driver.

The basic annotations used to run TestNG tests in Selenium RC:

@BeforeClass: The annotated method with @BeforeClass will be run before the first test method in the current class is invoked.

@AfterClass: The annotated method with @AfterClass will be run after all the test methods in the current class have been run.

@BeforeMethod: The annotated method with @BeforeMethod will be run before each test method.

@AfterMethod: The annotated method with @AfterMethod will be run after each test method.

@Test: Marks a class or a method @Test with as part of the test.

To handle pop-ups in RC , using selectWindow method, pop-up window will be selected and window Focus method will let the control from current window to pop-up windows and perform actions according to script.

Yes, it is possible when you are not using JAVA testing framework. Instead of using Java testing framework if you are using java client driver of selenium then TestNG allows you to do this. By using “parallel=test” attribute you can set tests to be executed in parallel and can define two different tests, each using different browser.

The main difference between Selenium RC and Webdriver is that, selenium RC injects javascript function into browsers when the page is loaded. On the other hand, Selenium Webdriver drives the browser using browsers built in support.