The existing drivers are the ChromeDriver,
InternetExplorerDriver, FirefoxDriver, OperaDriver and HtmlUnitDriver.
including their relative strengths and weaknesses There is also support for
mobile testing via the AndroidDriver, OperaMobileDriver and IPhoneDriver
While working with selenium webdriver you have an
option to choose from multiple webdrivers, such as HtmlUnitDriver,
FirefoxDriver, InternetExplorerDriver, ChromeDriver and OperaDriver. Each one
of them is a separate implementation of the WebDriver interface provided by
Selenium.
The first major point to note is that there are two
groups of driver implementations. One of those that invoke the actual browser
installed on your system and the other that emulates the behavior of another
browser. FirefoxDriver, InternetExplorerDriver, ChromeDriver and OperaDriver
invoke the actual browser installed on the machine; however the HtmlUnitDriver
emulates other browsers JS behavior.
This is currently the fastest and most lightweight
implementation of WebDriver. As the name suggests, this is based on HtmlUnit.
·
Fastest implementation of WebDriver
·
A pure Java solution and so it is
platform independent.
·
Supports Javascript
HtmlUnit is a
java based framework for testing webApps basically a wrapper around
‘HttpClient’ by Jakarta. HtmlUnit provides UI-Less emulation of browsers to
test web applications. The HtmlUnit APIs let you do the typical functions
performed in an actual web browser, such as click links, fill forms, invoke web
pages, submit values etc. HtmlUnit supports java script and complex AJAX
libraries. Javascript is disabled in the HtmlUnitDriver by default, however if
it can be enabled if required. The mechanism to enable javascript with the
HtmlUnitDriver is as follows:
HtmlUnitDriver MyhtmlDriver = new HtmlUnitDriver();
MyhtmlDriver.setJavascriptEnabled(true);
OR
HtmlUnitDriver MyhtmlDriver = new
HtmlUnitDriver(true);
When enabled, the HtmlUnitDriver emulates the java
script behavior of Internet Explorer by default. However we can direct the
HtmlUnitDriver to emulate the JavaScript behavior of the browser of our choice
by invoking the constructor that accepts the browser version. This can be done
as follows:
HtmlUnitDriver MyhtmlDriver = new
HtmlUnitDriver(BrowserVersion.Firefox_2);
The InternetExplorerDriver is a standalone server
which implements WebDriver's wire protocol. This driver has been tested with IE
6, 7, 8 and 9 on appropriate combinations of XP, Vista and Windows 7.
The driver supports running 32-bit and 64-bit
versions of the browser. The choice of how to determine which
"bit-ness" to use in launching the browser depends on which version
of the IEDriverServer.exe is launched. If the 32-bit version of
IEDriverServer.exe is launched, the 32-bit version of IE will be launched.
Similarly, if the 64-bit version of IEDriverServer.exe is launched, the 64-bit
version of IE will be launched.
The IE driver
class ‘InternetExplorerDriver.class’ is located at ‘\org\openqa\selenium\ie\’
directory in the ‘selenium-server-standalone-2.7.0.jar’. To use the
InternetExplorerDriver all you need to do is to have the
selenium-server-standalone-2.7.0.jar in your CLASSPATH. The IE driver runs only on windows and
supports both 32-bit and 64-bit operations. Depending on the thread that
instantiates the InternetExplorerDriver corresponding version of the IE is
launched i.e. if the thread instantiating driver is running in 32-bit then the
32-bit version of the IE will be launched and if the thread instantiating driver
is running in 64-bit then the 64-bit version of the IE will be launched.
The Internet Explorer driver uses the native or
OS-level events to perform various functions on the browser, such as inputs
from keyboard and mouse. This approach has both advantages and limitations
both. The advantages are that it bypasses the limitations of the Javascript
sandbox but there can be issues like the browser window under test might be out
of focus.
‘selenium-server-standalone-X.X.X.jar’ contains all
the drivers implementing the WebDriver interface of selenium. Hence the
'FirefoxDriver.class' can be found in the ‘\org\openqa\selenium\firefox
directory in the selenium-server-standalone-X.X.X.jar. The driver when
instantiated is added as an extension to the firefox profile. You can specify
the profile with which you want to load firefox session. If no profile is
specified then the driver creates an anonymous profile by default.
A profile can be created for the firefox driver as
follows:
FirefoxProfile myProfile = new FirefoxProfile();
Multiple operations can be performed on the newly
created profile, such as:
myProfile.addExtension(File);
myProfile.clean();
myProfile.getPort();
myProfile.setPort(int port);
myProfile.enableNativeEvents();
myProfile.setPreference(String key, String value);
etc...
After creating the your profile you can pass the
profile while creating the driver instance as follows:
WebDriver myFireFoxDriver = new
FirefoxDriver(myProfile);
This driver is faster than the InternetExplorerDriver
and executes the test in real Firefox web browser.
No comments:
Post a Comment