domain of those
tools. Most commercial tools focus on record and replay while Selenium emphasis
on using Selenium IDE (Selenium record and replay) tool only to get acquainted
with Selenium working and then move on to more mature Selenium libraries like
Remote control (Selenium 1.0) and Web Driver (Selenium 2.0).
Though most
commercial tools have built in capabilities of test reporting, error recovery
mechanisms and Selenium does not provide any such features by default. But
given the rich set of languages available with Selenium it very easy to emulate
such features.
Question3:
What are the set of
tools available with Selenium?
Answer:
Selenium has four
set of tools – Selenium IDE, Selenium 1.0 (Selenium RC), Selenium 2.0
(WebDriver) and Selenium Grid. Selenium Core is another tool but since it is
available as part of Selenium IDE as well as Selenium 1.0, it is not used in
isolation.
Question 4:
Which Selenium Tool
should I use?
Answer:
It entirely boils
down to where you stand today in terms of using Selenium. If you are entirely
new to Selenium then you should begin with Selenium IDE to learn Selenium
location strategies and then move to Selenium 2 as it is the most stable Selenium
library and future of Selenium. Use Selenium Grid when you want to distribute
your test across multiple devices. If you are already using Selenium 1.0 than
you should begin to migrate your test scripts to Selenium 2.0
Question 5:
What is Selenium IDE?
Answer:
Selenium IDE is a
firefox plug-in which is (by and large) used to record and replay test is
firefox browser. Selenium IDE can be used only with firefox browser.
Question 6:
Which language is
used in Selenium IDE?
Answer:
Selenium IDE uses
html sort of language called Selenese. Though other languages (java, c#, php
etc) cannot be used with Selenium IDE, Selenium IDE lets you convert test in
these languages so that they could be used with Selenium 1.0 or Selenium 2.0
Question 7:
What is Selenium
1.0?
Answer:
Selenium 1.0 or
Selenium Remote Control (popularly known as Selenium RC) is library available
in wide variety of languages. The primary reason of advent of Selenium RC was
incapability of Selenium IDE to execute tests in browser other than Selenium
IDE and the programmatical limitations of language Selenese used in Selenium
IDE.
Question 8:
What is Selenium
2.0?
Answer:
Selenium 2.0 also
known as WebDriver is the latest offering of Selenium. It provides
· better
API than Selenium 1.0
· does
not suffer from java script security restriction which Selenium 1.0 does
· supports
more UI complicated UI operations like drag and drop
Question 9:
What are the
element locators available with Selenium which could be used to locate elements
on web page?
Answer:
There are mainly 4
locators used with Selenium –
· html
id
· html
name
· XPath
locator and
· Css
locators
Question 10:
What is Selenium
Grid?
Answer:
Selenium grid lets
you distribute your tests on multiple machines and all of them at the same
time. Hence you can execute test on IE on Windows and Safari on Mac machine
using the same test script (well, almost always). This greatly helps in
reducing the time of test execution and provides quick feedback to stack
holders.
Selenium IDE
Questions
Question 11:
What are two modes
of views in Selenium IDE?
Answer:
Selenium IDE can be
opened either in side bar (View > Side bar > Selenium IDE) or as a pop up
window (Tools > Selenium IDE). While using Selenium IDE in browser side bar
it cannot record user operations in a pop up window opened by application.
Question 12:
Can I control the
speed and pause test execution in Selenium IDE?
Answer:
Selenium IDE
provides a slider with Slow and Fast pointers to control the speed of
execution.
Question 13:
Where do I see the
results of Test Execution in Selenium IDE?
Answer:
Result of test
execution can be views in log window in Selenium IDE –
Question 14:
Where do I see the
description of commands used in Selenium IDE?
Answer:
Commands of
description can be seen in Reference section –
Question 15:
Can I build test
suite using Selenium IDE?
Answer:
Yes, you can first
record individual test cases and then group all of them in a test suite.
Following this entire test suite could be executed instead of executing
individual tests.
Question 16:
What verification
points are available with Selenium?
Answer:
There are largely
three type of verification points available with Selenium –
· Check
for page title
· Check
for certain text
· Check
for certain element (text box, drop down, table etc)
Question 17:
I see two types of
check with Selenium – verification and assertion, what’s the difference between
tow?
Answer:
· A
verification check lets test execution continue even in the wake of failure
with check, while assertion stops the test execution. Consider an example of
checking text on page, you may like to use verification point and let test
execution continue even if text is not present. But for a login page, you would
like to add assertion for presence of text box login as it does not make sense
continuing with test execution if login text box is not present.
Question 18:
I don’t see check
points added to my tests while using Selenium IDEL, how do I get them added to
my tests?
Answer:
You need to use
context menu to add check points to your Selenium IDE tests –
Question 19:
How do I edit tests
in Selenium IDE?
Answer:
There are two ways
to edit tests in Selenium IDE; one is the table view while other looking into
the source code of recorded commands –
Question 20:
What is syntax of
command used in Selenium?
Answer:
There are three
entities associated with a command –
· Name
of Command
· Element
Locator (also known as Target)
· Value
(required when using echo, wait etc)
Question 21:
There are tons of
Selenium Command, am I going to use all of them
Answer:
This entirely boils
down to operations you are carrying out with Selenium. Though you would
definitely be using following Selenium Commands more often –
· Open:
opens a web page.
· click/clickAndWait:
click on an element and waits for a new page to load.
· Select:
Selects a value from a drop down value.
· verifyTitle/assertTitle:
verifies/asserts page title.
· verify/assert
ElementPresent: verifies/asserts presence of element, in the page.
· verify/assert
TextPresent verifies/asserts expected text is somewhere on the page.
Question 22:
How do I use html
id and name while using Selenium IDE
Answer:
Html id and name
can be used as it is in selenium IDE. For example Google search box has name –
“q” and id – “list-b” and they can be used as target in selenium IDE –
Question 23:
What is XPath? When
would I have to use XPath in Selenium IDE?
Answer:
XPath is a way to
navigate in xml document and this can be used to identify elements in a web
page. You may have to use XPath when there is no name/id associated with
element on page or only partial part of name/ide is constant.
Direct child is
denoted with - /
Relative child is
denoted with - //
Id, class, names
can also be used with XPath –
· //input[@name=’q’]
· //input[@id=’lst-ib’]
· //input[@class=’ lst’]
If only part of
id/name/class is constant than “contains” can be used as –
· //input[contains(@id,'lst-ib')]
Question 24:
What is CSS
location strategy in Selenium?
Answer:
CSS location
strategy can be used with Selenium to locate elements, it works using cascade
style sheet location methods in which -
Direct child is
denoted with – (a space)
Relative child is
denoted with - >
Id, class, names
can also be used with XPath –
· css=input[name=’q’]
· css=input[id=’lst-ib’]
or input#lst-ib
· css=input[class=’ lst’]
or input.lst
If only part of
id/name/class is constant than “contains” can be used as –
· css=input[id*='
lst-ib ')]
Element location
strategy using inner text
· css
= a:contains(‘log out’)
Question 25:
There is id, name,
XPath, CSS locator, which one should I use?
Answer:
If there are
constant name/id available than they should be used instead of XPath and CSS
locators. If not then css locators should be given preference as their
evaluation is faster than XPath in most modern browsers.
Question 26:
I want to
generate random numbers, dates as my test data, how do I do this in Selenium
IDE?
Answer:
This can be
achieved by executing java script in Selenium. Java script can be executed
using following syntax –
type
css=input#s
javascript{Math.random()}
And for date –
type
css=input#s
javascript{new Date()}
Question 27:
Can I store result
of an evaluation and use it later in my test?
Answer:
You can use “store”
command to achieve this. You can save result of an evaluation in a variable and
use it later in your Selenium IDE script. For example we can store value from a
text box as following, and later use it to type it in another text box –
storeText
css=input#s
var1
type
css=input#d
${var1}
Question 28:
I have stored
result of an evaluation; can I print it in IDE to check its value?
Answer:
You can use echo command
as following to check the stored value in Selenium IDE –
storeText
css=input#s
var1
echo
${var1}
Question 29:
Can I handle java
script alert using Selenium?
Answer
You could use
verify/assertAlert to check presence of alert on page. Since selenium cannot
click on “Ok” button on js alert window, the alert itself does not appear on
page when this check is carried out.
Question 30:
Selenium has
recorded my test using XPath, how do I change them to css locator?
Answer
You can use drop
down available next to Find in Selenium to change element locator used by
Selenium –
Question 31:
I have written my
own element locator, how do I test it?
Answer
You can use Find
button of Selenium IDE to test your locator. Once you click on it, you would
see element being highlighted on screen provided your element locator is right
Else one error message would be displayed in log window.
Question 32:
I have written one
js extension; can I plug it in Selenium and use it?
Answer
You could specify
you js extension in “Options” window of Selenium IDE –
Question 33:
How do I convert my
Selenium IDE tests from Selenese to another language?
Answer
You could use
Format option of Selenium IDE to convert tests in another programming language
–
Question 34:
I have converted my
Selenium IDE tests to java but I am not able to execute themL, execution
options as well as Table tab of Selenium IDE is disabledLL
Answer
This is because
Selenium IDE does not support execution of test in any other language than
Selenese (language of Selenium IDE). You can convert Selenium IDE in a language
of your choice and then use Selenium 1.0 to execute these tests in that
language.
Question 35:
I want to use only
Selenese as my test script language but still want to execute tests in other
browsers, how do I do that?
Answer
You can execute you
Selenese test in another browser by specifying the “-htmlSuite” followed by path
of your Selenese suite while starting the Selenium Server. Selenium Server
would be covered in details in question about Selenium RC.
Question 36:
I have added one
command in middle of list of commands, how do I test only this new command?
Answer
You can double
click on newly added command and Selenium IDE would execute only that command
in browser.
Question 37:
Can I make Selenium
IDE tests begin test execution from a certain command and not from the very
first command?
Answer
You could set a
command as “start” command from context menu. When a command is set as start
command then a small green symbol appears before command. Same context menu can
be used to toggle this optio
Question 38:
Are there other
tools available outside Selenium IDE to help me tests my element locators
Answer
You could XPath
checker - https://addons.mozilla.org/en-US/firefox/addon/xpath-checker/ to
test you XPath locators and Firefinder (a firebug add on) to test you css
locators –
Firefinder can also
be used to test XPath locators.
Question 39:
What is upcoming
advancement in Selenium IDE?
Answer
The latest
advancement in Selenium IDE would be to have capabilities of converting
Selenium IDE tests in Webdriver (Selenium 2.0) options. This would help
generating quick and dirty tests for Selenium 2.0
Question 40:
How can I use
looping option (flow control) is Selenium IDE
Answer
Selenese does not
provide support for looping, but there is extension which could be used to
achieve same. This extension can be download from here - http://51elliot.blogspot.com/2008/02/selenium-ide-goto.html
This extension can
be added under “Selenium IDE Extension” section to use loop feature in Selenium
IDE.
Question 41:
Can I use screen
coordinate while using click command? I want to click at specific part of my
element.
Answer
You would need to
use clickAT command to achieve. clickAt command accepts element locator and x,
y coordinates as arguments –
clickAt(locator,
coordString)
Question 42:
How do I verify
presence of drop down options using Selenium?
Answer
Use
assertSelectOptions as following to check options in a drop down list –
assertSelectOptions
Question 43:
Can I get data from
a specific html table cell using Selenium IDE?
Answer
Use storeTable
command to get data from a specific cell in an html table, following example
store text from cell 0,4 from an html table –
storeTable
css=#tableId.0.4
textFromCell
Question 44:
I want to make
Selenium IDE record and display css locator followed by other locators, is it
possible to give high priority to css locator in Selenium IDE?
Answer
You can change
default behavior of Selenium IDE > element locator preference by crating js
file with following–
LocatorBuilders.order
= ['css:name', 'css:id', 'id', 'link', 'name', 'xpath:attributes'];
And add this file
under “Selenium IDE Extension” under Selenium Options.
Question 45:
My application has
dynamic alerts which don’t always appear, how do I handle them?
Answer
If you want to
simulate clicking “ok “ on alert than use – chooseOkOnNextConfirmation and if
you want to simulate clicking “cancel” on alert than use - chooseCancelOnNextConfirmation ( )
Question 46:
Can I right click
on a locator?
Answer
You can use command
- contextMenu ( locator) to simulate right click on an element in web page.
Question 47:
How do I capture
screen shot of page using Selenium IDE?
Answer
Use command –
captureEntirePageScreenshot to take screen shot of page.
Question 48:
I want to pause my
test execution after certain command.
Answer
Use pause command
which takes time in milliseconds and would pause test execution for specified
time – pause ( waitTime )
Question 49:
I used open command
to launch my page, but I encountered time out errorL
Answer
This happens
because open commands waits for only 30 seconds for page to load. If you
application takes more than 30 sec then you can use “setTimeout
( timeout )” to make selenium IDE wait for specified time, before proceeding
with test execution.
Question 50:
What’s the
difference between type and typeKeys commands?
Answer
type command
simulates enter operations at one go while typeKeys simulates keystroke key by
key.
typeKeys could be used
when typing data in text box which bring options (like Google suggestion list)
because such operation are not usually simulated using type command.
Selenium
RC (Selenium 1.0) Questions
Question 51:
What is Selenium RC
(also known as Selenium 1.0)?
Answer
Selenium RC is an
offering from SeleniumHQ which tries to overcome following draw backs of
Selenium IDE –
· Able
to execute tests only with Firefox
· Not
able to use full-fledged programming language and being limited to Selenese
Question 52:
What are the main
components of Selenium RC?
Answer
Selenium RC has two
primary components –
· Client
libraries which let you writes tests in language of your preference i.e. java,
C#, perl, php etc
· Selenium
sever which acts as a proxy between browser and application under test (aut)
Question 53:
Why do I need
Selenium Server?
Answer
Selenium uses java
script to drives tests on a browser; Selenium injects its own js to the
response which is returned from aut. But there is a java script security
restriction (same origin policy) which lets you modify html of page using js
only if js also originates from the same domain as html. This security
restriction is of utmost important but spoils the working of Selenium. This is
where Selenium server comes to play an important role.
Selenium server
stands between aut and browser and injects selenium js to the response received
from aut and then it is delivered to broswer. Hence browser believes that
entire response was delivered from aut.
Question 54:
What is Selenium
core? I have never used it!!!
Answer
Selenium core is
the core js engine of Selenium which executes tests on browser, but because of
same origin policy it needs to be deployed on app server itself, which is not always
feasible. Hence Selenium core is not used in isolation. Selenium IDE as well as
Selenium RC use Selenium core to drive tests while over coming same origin
policy. In case of Selenium IDE tests are run in context of browser hence it is
not hindered by same origin policy and with Selenium RC, Selenium Server over
comes same origin policy.
Question 55:
Where is executable
for Selenium RC, how do I install it?
Answer
Installation is a
misnomer for Selenium RC. You don’t install Selenium RC you only add client
libraries to you project. For example in case of java you add client driver and
Selenium server jars in Eclipse or IntelliJ which are java editors.
Question 56:
I have downloaded
Selenium Server and Client libraries, how do I start Selenium Server?
Answer
To start Selenium
Server, you need to navigate to installation directory of Selenium server and
execute following command –
Java -jar .jar
This will start
Selenium server at port 4444 by default.
Notice that you
need to have java version 1.5 or higher available on your system to be able to
use Selenium server.
Question 57:
On my machine port
4444 is not freeL . How do Use another port?
Answer
You can specify
port while running the selenium server as –
Java -jar .jar –port 5555
Question 58:
I am new to
programming; can Selenium generate sample code from my Selenese scripts?
Answer
You can first
record tests in Selenium IDE and then use format option to convert them in a
language of your choice.
Question 59:
Can I start
Selenium server from my program instead of command line
Answer
If you are using
java then you can start Selenium server using SeleniumServer class. For this
you need to instantiate SeleniumServer and then call start() method on it.
seleniumServer = new SeleniumServer();
seleniumServer.start();
Question 60:
And how do I start
the browser?
Answer
While using java
you need to create instance of DefaultSelenium class and pass it four
parameters –
selenium = new DefaultSelenium(serverHost,
serverPort, browser, appURL);
selenium.start();
Herein you need to
pass,
host where Selenium
server is running,
port of Selenium
server,
browser where tests
are to be executed and
application URL
Question 61:
I am not using java
to program my tests, do I still have to install java on my system?
Answer
Yes, since Selenium
server is written in java you need java to be installed on your system to be
able to use it. Even though you might not be using java to program your tests.
Question 62:
What are the
browsers offering from Selenium?
Answer
Following browsers
could be used with Selenium –
*firefox
*firefoxproxy
*pifirefox
*chrome
*iexploreproxy
*iexplore
*firefox3
*safariproxy
*googlechrome
*konqueror
*firefox2
*safari
*piiexplore
*firefoxchrome
*opera
*iehta
*custom
Here pi and proxy
stand for proxy injection mode of Selenium server
Question 63:
During execution of
tests I see two browser windows; one my test application another window shows
commands being executed. Can I limit it to just one window?
Answer
Yes you can
instruct Selenium Server to launch just one window. To do so you must specify –singleWindow
while starting the Selenium server as –
Java -jar .jar –singleWindow
Question 64:
My tests usually
time outL. Can I specify bigger time out?
Answer
This usually
happens while using open method with Selenium. One way to overcome this is to
use setTimeOut method in your test script another way is to specify time out
while starting Selenium server as following –
Java -jar .jar –timeout
Question 65:
My system is behind
corporate network, how do I specify my corporate proxy?
Answer
You can specify
your corporate proxy as following while starting Selenium Server –
java -jar .jar
-Dhttp.proxyHost= -Dhttp.proxyPort= -Dhttp.proxyUser= -Dhttp.proxyPassword=
Question 66:
I am switching
domains in my test scripts. I move from “yahoo.com” to “google.com” and my
tests encounter permission denied errorL
Answer
Changing domains is
also a security restriction from java script. To overcome this you should start
you Selenium server in proxy injection mode as –
java -jar .jar
–proxyInjectionMode
Now Selenium server
would act as proxy server for all the content going to test application
Question 67:
Can I execute my
Selenese tests in another browser using Selenium server? I want to use only
Selenese script my tests but still want to execute my test in non firefox
browsers
Answer
Yes you can. To do
so you need to specify following parameters while starting Selenium server –
Browser
Test domain
Path to html suite
(you Selenese tests) and
Path to result
java -jar
<>.jar -htmlSuite
Question 68:
Can I log more
options during test execution?
Answer
If you want to log
browser side option during test execution then you should start Selenium server
as following –
java -jar
<>.jar –browserSideLog
Question 69:
Can I use Selenium
RC on my UNIX/Mac also?
Answer
You can use
Selenium RC on any system which is capable I running Java. Hence you can use it
on RC and UNIX machines also
Question 70:
I want to test my
scripts on new experimental browser, how do I do that?
Answer
You can specify
*custom followed by path to browser to execute your tests on any browser while
starting Selenium server
*custom
Question 71:
I executed my tests
cases but where is the test report?
Answer
Selenium RC itself
does not provide any mechanism for test reporting. Test reporting is driven
from the framework you use for Selenium. For example with java client driver of
Selenium –
· if
you are using JUnit then you can use ant plug-in of JUnit to generate test
report
· if
you are using TestNG then TestNG generates reports for you
Same reporting
option is available with PHP unit and other client libraries you are using.
Question 72:
How do I use
recovery scenarios with Selenium? I used to use them with QTP.
Answer
Power of recovery
scenarios lies with the programming language you use. If you are using java
then you can use Exception handling to overcome same. For example if you are
reading data from a file and file is not available then you should keep you
code statements in “try catch” block so that test execution could continue even
in the wake of errors. Such mechanism entirely boils down the errors you want
to recover from, while being able to continue with test execution.
Question 73:
How do I iterate
through options in my test script.
Answer
You can use loop
features of the programming language, for example you can use “for” loop in
java as following to type different test data in a text box –
// test data collection in an array
String[]
testData = {"test1", "test2", "test3"};
//
iterate through each test data
for (String
s : testData) {
selenium.type(“elementLocator”,
testData);
}
Question 74:
Can I execute java
script from my tests? I want to count number of images on my page.
Answer
You can use method
getEval() to evaluate java script. For example if you want to count number of
images then you can pass following dom statement to getEval() as following –
selenium.getEval("window.document.images.length;");
Or to get All
anchor objects from a page
selenium.getEval("window.document.getElementsByTagName(‘a’);");
Question 75:
Is there a way for
me to know all available options when I start Selenium Server?
Answer
If you want to see
all options available while starting Selenium server then you should use option
“-h” while starting Selenium server -
Java –jar .jar –h
It would display
you all the options which you can use while starting the Selenium server.
Question 76:
I have created my
own firefox profile; can I execute my test scripts on it
Answer
You may like to
create your own firefox profile because Selenium always created a clean firefox
profile while executing the tests and none of your FF settings and plug-in are
considered with this clean profile. If you want to execute tests on FF with
your settings then you should create custom profile for FF.
To be able to
execute tests on a custom firefox profile you should specify its path while
starting Selenium server. For example if your new profile is stored at “awesome
location” in your directory then you should start Selenium server as following
–
Java –jar .jar
-firefoxProfileTemplate "awesome location"
Question 77:
How do I capture
server side log from Selenium server?
Answer
Start your Selenium
Server as following –
java -jar .jar
-log selenium.log
And Selenium would
start logging server side info, i.e.
20:44:25 DEBUG [12]
org.openqa.selenium.server.SeleniumDriverResourceHandler -
Browser 12345/:top
frame1 posted START NEW
Question 78:
What are Heightened
Privileges Browsers?
Answer
Firefox and IE have
browser modes which are not restricted by java script’s same origin policy.
These browsers are known as browsers with elevated security privileges. In case
of Firefox it is known as chrome (It’s not the Google browser) and in case of
IE it is known as iehta
Question 79:
My application has
lots of pop up window, how do I work with them?
Answer
You need to know
the Window ID of pop window to be able to work with them.
First you need to
bring control on pop up window; execute selenium commands there, close the pop
up window and then bring control back to main window. Consider following
example where click on an image brings a pop up window –
// click on image brings
pop up window
selenium.click("css=img");
// wait for pop up
window identified using anchor target "ss"
selenium.waitForPopUp("ss",
getWaitPeriod());
selenium.selectWindow("ss");
// Some more operations on popup window
// Close the pop up
window and Select the main application window
//
Main window is selected by adding null as argument
selenium.close();
selenium.selectWindow("null");
// continue with usual operation J
Question 80:
While trying to
execute my tests with firefox I encountered following error – “Firefox Refused
Shutdown While Preparing a Profile”. How do I solve it?
Answer
This message simply
means that Selenium is not able to launch FF browser as it is already running
on your system. To overcome this you should close all running instances of FF
browser.
You should also
check your system process if there is any hidden FF profile running which is
not visible on screen. You should kill all FF processes and following this your
tests should run smooth
Question 80:
While trying to
execute my tests with firefox I encountered following error – “Firefox Refused
Shutdown While Preparing a Profile”. How do I solve it?
Answer
This message simply
means that Selenium is not able to launch FF browser as it is already running
on your system. To overcome this you should close all running instances of FF
browser.
You should also
check your system process if there is any hidden FF profile running which is
not visible on screen. You should kill all FF processes and following this your
tests should run smooth
Question 81:
My application uses
Ajax heavily how do I use Selenium RC to work with Ajax operations?
Answer
Ajax operations
don’t reload a page like normal form submission but they make http requests
behind the scene. You cannot use waitForPageToLoad for such operations and
instead should use conditional wait for change in state of application. This
could as well mean waiting for presence of an element before continuing with
test operations. Consider following example in which type operation triggers
Ajax operation which is followed by conditional wait for presence of a text box
–
// type operation
brings element “q” on screen without loading the page
selenium.type("elementLocator", "testData");
// conditional wait
for element “q”
for (int second
= 0;; second++) {
if (second
>= 60) fail("timeout");
try { if (selenium.isElementPresent("q")) break;
} catch (Exception e) {}
Thread.sleep(1000);
}
Question 82:
How do I upload a
file using Selenium? I need to upload a word file during test execution.
Answer
If you are using
Firefox then you can use “type” command to type in a File Input box of upload file.
But type operation does not work with IE and you would have to use “Robot”
class in java to work make file upload work.
Question 83:
Why do I get
“permission denied” error during execution of Selenium tests?
Answer
The primary reason
of permission denied error is same origin policy restriction from java script.
To overcome this error you can use browsers with elevated security privileges.
In case of Firefox you should use *chrome and in case of IE you should use
*iehta as browser for working with Selenium.
Question 84:
I am not able to
use “style” attribute to locate element with IE browserL
Answer
This is because IE
expects attribute values to be in caps while other browsers expect it to be
lower case letters. Hence
//tr[@style="background-color:yellow"]
works with other browsers
//tr[@style="BACKGROUND-COLOUR:yellow"]
works with IE
Question 85:
Are there any
technical limitations while using Selenium RC?
Answer
Besides notorious
“same origin policy” restriction from js, Selenium is also restricted from
exercising anything which is outside browser. For example you cannot click on
“Tools” option of your browser by just using Selenium.
Question 86:
But my tests need
me to exercise objects outside browser, how do I achieve it?
Answer
You can use Robot
class in java to achieve this, but it would be dirty solution even if you get
through this.
Question 87:
Does Selenium have
any offering for mobile browsers?
Answer
Selenium 2.0
(WebDriver) provides iPhone as well Android drivers which could be used to
drive tests on mobile browsers
Question 88:
How does Selenium
RC stand with other commercial tools?
Answer
The biggest
advantage of Selenium RC is that it is absolutely free and has vast support of
languages and browsers (almost always). Selenium lags when it comes to test
reporting as Selenium does not have any in built reporting but this can be
easily achieved using the programming language you decide to work on with
Selenium. A bigger drawback is not being able to exercise objects which are
outside browser window, for example clicking on folder on your desktop.
Question 89:
How does Selenium
RC stand with other commercial tools?
Answer
The biggest
advantage of Selenium RC is that it is absolutely free and has vast support of
languages and browsers (almost always). Selenium lags when it comes to test
reporting as Selenium does not have any in built reporting but this can be
easily achieved
Question 90:
Can I just use
Selenium RC to drive tests on two different browsers on one operating system
without using Selenium Grid?
Answer
If you are using
java client driver of Selenium then java testing framework TestNG lets you
achieve this. You can set tests to be executed in parallel using
“parallel=test” attribute and define two different tests, each using a
different browser. Whole set up would look as (notice the highlighted
sections for browser in test suite)–
xml version="1.0" encoding="utf-8"?>
DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Test
Automation" verbose="10">
<parameter name="serverHost" value="localhost" />
<parameter name="appURL" value="http://tamil.yahoo.com"/>
<parameter name="proxyInjection" value="false" />
<parameter name="serverPort" value="4444"/>
<test name="Web
Test1">
<parameter name="browser" value="*chrome" />
<parameter name="m" value="1">parameter>
<classes><class name="com.core.tests.TestClass1">class>classes>
test>
<test name="Web
Test2">
<parameter name="browser" value="*iehta" />
<parameter name="m" value="2">parameter>
<classes><class name="com.core.tests.TestClass1">class>classes>
test>
suite>
Selenium Grid
Questions
Question 91:
How do I cut down
text execution time for my selenium tests? I want to execute my tests on a
combination of different machines and browsers.
Answer
Selenium grid is
your friendJ. Selenium grid lets you distribute tests across browsers and
machines of your choice.
Question 92:
How does Selenium
grid works?
Answer
Selenium grid uses
combination of Selenium RC servers to execute tests in multiple browsers on
different machine. Herein one Selenium RC server works as hub while other RC
servers work as slaves, which could be controlled by hub. Whenever there is a
request for a specific configuration for test execution then hub looks for a
free RC slave server and if available then test execution begins on it. Once
test execution is over then RC slave server would be available for next set of
test execution.
Question 93:
Can you show me one
diagram which describes functionality of Selenium grid?
Answer
In the following
diagram Selenium hub is controlling three Selenium RC servers which are running
for configurations –
· IE
on Windows
· FF
on Linux
· FF
on windows
Question 94:
Which jar files are
needed to works with Selenium GRID?
Answer
You need to
download and add following jar files to your Selenium set up to be able to work
with Selenium. These jar files are –
· selenium-grid-remote-control-standalone-.jar
· selenium-grid-hub-standalone-.jar
· selenium-grid-tools-standalone-.jar
Question 95:
How do I start
Selenium Grid hub from my machine?
Answer
You should have
“ant” set up on your system to be able to work with Grid. Once you have
downloaded Selenium Grid, navigate to its distribution directory and execute
following command -
ant launch-hub
This would start
grid hub on port 4444 locally. You can verify this by navigating to following
URL - http://localhost:4444/console
Question 96:
How do I start
Selenium Grid Slave Server from my system?
Answer
Navigate to
download directory of Selenium gird and execute following command –
ant launch-remote-control
This would launch
remote control server at port 555. At this point if you navigate to http://localhost:4444/console then
you would see this remote control listed under “Available Remote Controls”
Question 97:
How do I start
Selenium grid slave on a different port than 5555?
Answer
You can use option
“-Dport” followed by port number to start grid slave on a specific port.
ant -Dport=1111
launch-remote-control
ant -Dport=2222
launch-remote-control
Question 98:
How do I start grid
RC slaves on a different system than my local host so than hub could control
and contact a specific configuration?
Answer
You should specify
following configuration while starting RC slave –
ant -Dport= -Dhost= -DhubURL= launch-remote-control
Herein “hostname”
is the host where RC slave is running and “hub url” is URL of machine where
grid hub is running.
Question 99:
How do I specify an
environment while starting grid slave machine?
Answer
You could specify
an environment using “-Denvironment” while starting a slave machine.
ant -Denvironment=”Safari on Mac” launch-remote-control
Herein Safari on
Mac is the environment which would be used to recognize configuration of RC
slave.
Question 100:
How do I use
machine specific configuration in my Selenium tests?
Answer
You could specify
machine specific configuration while instantiating Selenium as –
Selenium = new
DefaultSelenium("localhost", 4444, **'Safari on Mac'**,
'http://yahoo.com');
And then you use
this selenium instance to carryout operation on your web application.
Looking for best Software Testing Training in Chennai? CREDO SYSTEMZ is the No 1 Software Testing Training Institute in Chennai offering professional training on both Manual, automation testing training like Selenium, QTP/UFT and Performance Testing Training Courses like LoadRunner and JMeter. More Details: Software Testing Training course details.
ReplyDelete