Automation, Automation Framework, Selenium, System Testing, Testing, Web Automation, Web Testing

How to take screenshots via Selenium.

If we have to prove something to either a developer or a Product owner then we generally we have several ways via which we can actually show the idea to them, but what if whatever you want to show stop working when you actually want to demo it? This is silly, right? But it happens, You have to believe me!!
Continue reading “How to take screenshots via Selenium.”

Automation, Automation Framework, Design Pattern, Design patterns, Page Object Model, Testing, Web Automation

Part II – One step deeper into Page Object Model.

As we have already discussed in my last post on page object model, why we need design patterns while coding. In this post, lets see what all pre-requisites are required to get a quick start so that we can get a better understanding of POM aka Page Object Model:

  1. The functionality classes (PageObjects) represent a reasoned common lineage between the pages of the application.
  2. The Page Object pattern act for the screens of your web app as a sequence of objects.
  3. It encapsulates the characteristics represented by a page.
  4. It permit us to mock-up the UI in our tests.
  5. A page object is an object-oriented class that work as an interface to a page of your AUT.

Continue reading “Part II – One step deeper into Page Object Model.”

Selenium, Selenium grid, Testing, TestNG

Varied understanding of TestNg and Selenium grid on distinct lines.

Last week, I have given a session over Selenium grid with one of my colleague. In that session, we have covered various topic related to Selenium grid, and we answered some great questions which were asked from the audience out there. In this blog post, I will share the most relish topic which is TestNG.

I have seen many articles, notes, etc over the comparison of TestNG and Selenium Grid, and in this piece of write-up I will share my own experience of working with both and what all pros-cons both holds.To start with let us start with Selenium grid.

Selenium Grid

It is one of the flavor of widely used web automation tool – Selenium. Selenium comes in different edition, like Selenium IDE, Selenium Remote Control, Selenium Webdriver, and Selenium Grid. Each one has its own unique importance.

Continue reading “Varied understanding of TestNg and Selenium grid on distinct lines.”

Exception, Functional Tests, Java, Selenium Errors

org.openqa.selenium.WebDriverException: Error forwarding the new session Empty pool of VM for setup Capabilities [{browserName=safari}]

Problem Statement


Exception in thread "main" org.openqa.selenium.WebDriverException: Error forwarding the new session Empty pool of VM for setup Capabilities [{browserName=safari}]
Command duration or timeout: 198 milliseconds
Build info: version: '2.41.0', revision: '3192d8a', time: '2014-03-27 17:17:32'
System info: host: 'XXXX', ip: '192.168.14.1', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_67'
Driver info: org.openqa.selenium.remote.RemoteWebDriver
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
 at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
 at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:193)
 at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)
 at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:595)
 at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:240)
 at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:126)
 at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:153)
 at remoteDriver.TestFireFoxRemotely.main(TestFireFoxRemotely.java:17)

Caused by: org.openqa.grid.common.exception.GridException: Error forwarding the new session Empty pool of VM for setup Capabilities [{browserName=safari}]
 at org.openqa.grid.web.servlet.handler.RequestHandler.process(RequestHandler.java:114)
 at org.openqa.grid.web.servlet.DriverServlet.process(DriverServlet.java:83)
 at org.openqa.grid.web.servlet.DriverServlet.doPost(DriverServlet.java:67)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at org.seleniumhq.jetty7.servlet.ServletHolder.handle(ServletHolder.java:565)
 at org.seleniumhq.jetty7.servlet.ServletHandler.doHandle(ServletHandler.java:479)
 at org.seleniumhq.jetty7.server.session.SessionHandler.doHandle(SessionHandler.java:225)
 at org.seleniumhq.jetty7.server.handler.ContextHandler.doHandle(ContextHandler.java:1031)
 at org.seleniumhq.jetty7.servlet.ServletHandler.doScope(ServletHandler.java:406)
 at org.seleniumhq.jetty7.server.session.SessionHandler.doScope(SessionHandler.java:186)
 at org.seleniumhq.jetty7.server.handler.ContextHandler.doScope(ContextHandler.java:965)
 at org.seleniumhq.jetty7.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
 at org.seleniumhq.jetty7.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111)
 at org.seleniumhq.jetty7.server.Server.handle(Server.java:349)
 at org.seleniumhq.jetty7.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:452)
 at org.seleniumhq.jetty7.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:47)
 at org.seleniumhq.jetty7.server.AbstractHttpConnection.content(AbstractHttpConnection.java:894)
 at org.seleniumhq.jetty7.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:948)
 at org.seleniumhq.jetty7.http.HttpParser.parseNext(HttpParser.java:857)
 at org.seleniumhq.jetty7.http.HttpParser.parseAvailable(HttpParser.java:235)
 at org.seleniumhq.jetty7.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:66)
 at org.seleniumhq.jetty7.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:254)
 at org.seleniumhq.jetty7.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:599)
 at org.seleniumhq.jetty7.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:534)
 at java.lang.Thread.run(Thread.java:745)

Continue reading “org.openqa.selenium.WebDriverException: Error forwarding the new session Empty pool of VM for setup Capabilities [{browserName=safari}]”

Automation, Automation Framework, eclipse, Quality Analyst, System Testing, Testing, Uncategorized, Web Automation, Web Testing

org.openqa.selenium.WebDriverException: f.QueryInterface is not a function

org.openqa.selenium.WebDriverException: f.QueryInterface is not a function
Command duration or timeout: 17 milliseconds
Build info: version: ‘2.41.0’, revision: ‘3192d8a6c4449dc285928ba024779344f5423c58’, time: ‘2014-03-27 11:29:39’
System info: host: ‘ksehgal’, ip: ‘192.168.0.95’, os.name: ‘Windows 7’, os.arch: ‘amd64’, os.version: ‘6.1’, java.version: ‘1.6.0_43’
Session ID: b469c4b9-7596-4b66-b87e-646db4256726
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities [{platform=XP, acceptSslCerts=true, javascriptEnabled=true, browserName=firefox, rotatable=false, locationContextEnabled=true, version=29.0.1, cssSelectorsEnabled=true, databaseEnabled=true, handlesAlerts=true, browserConnectionEnabled=true, nativeEvents=false, webStorageEnabled=true, applicationCacheEnabled=true, takesScreenshot=true}]

Continue reading “org.openqa.selenium.WebDriverException: f.QueryInterface is not a function”

Agile Testing, Automation, Functional Testing, Selenium Builder, Services Testing, System Testing, Testing, Web Automation, Web Testing

Selenium Builder – Exporting and execution

In continuation with my last blog I will here share a more advanced capability of Selenium Builder.
Now as we are done with the set up we can talk one step ahead. Lets start with an example :
I have opened a website in firefox and I want to automate some actions on this page . Lets say :

  1.  I want to open the url (https://khyatisehgal.wordpress.com/).
  2. I need to check a blog on this website , the very first one .
  3. I want to see the author’s about me column.

And that’s all.

What I will do for this is ,

  1. I will open the firefox
  2. I will launch Selenium Builder.
  3. I will start doing the above steps .

Continue reading “Selenium Builder – Exporting and execution”

Automation, Automation Framework, eclipse, Java, Java Basics, Selenium, Testing, Uncategorized, Web Automation, Web Testing

My First Selenium – Java Project in eclipse.

Today I will be sharing how to start making new selenium project.I will start with some basic requirements and then will be proceeding to the art of making selenium test scripts.

Pre-requisite:

1. Basic knowledge of a programming language like Java , C, Ruby , etc.

See link to learn Java .

2. Basic knowledge of Selenium tool.

3. Art of finding locators.

4. Set up of eclipse on the operating system you are using.

5. Java set up on your computer machine, in case you are using Java.
Continue reading “My First Selenium – Java Project in eclipse.”

Agile Testing, Automation, BDD, Behaviour Driven Development, Fintesse, Fitnium, Functional Testing, Quality Analyst, System Testing, Testing, Web Automation, Web Testing

Selenium flavors and their architectural differences.

I have seen many people asking a repetitive question in interviews if they see Selenium written on any Curriculum Vitae of a Test Engineer. Though I believe theoretical and conceptual knowledge is equally important as hand-on experience. As a part of hiring panel I have observed this as a pet question of our hiring team : ‘How about the architectural difference between Selenium versions.’ Of-course , once they are done with questions like ‘What you know all about selenium’ ?
Selenium generally comes in four different flavours :
Selenium IDE , Selenium RC , Selenium Grid and Selenium Webdriver.
I will be sharing the best answer I got and the research which I did so as to understand the architecture of selenium.
Continue reading “Selenium flavors and their architectural differences.”

Automation, Functional Testing, Quality Analyst, Selenium, System Testing, Testing, Web Automation, Web Testing

Web Automation – quick walk !

What is WEB ? Everything which is available over internet is Web .

Automation in layman terms is to imitate a user action. It could be a joker who used to mimic as some child or a Robot doing the same stuff an human used to do.

So Automation is a big picture all-in-all it is a task which once done can save a lot of human manual tasks.

So lets start with how we can start this tour ?

images (4)In software development , automation is as important as manual stuff. And to mention specifically for Testing perspective , Automation testing is a base-line which a Team can rely on.

Continue reading “Web Automation – quick walk !”

Agile Testing, Automation, Selenium, Testing

Introduction to Selenium Locators.

Often, Recording and playing back a recorded script using Selenium IDE and Webdriver is just a stepping stone to write a more meaningful test script(see my last blog). Almost, in all the cases, it serves as a template to add more code and to do more.

At times there are many facts which we used to overlook which seems very minute but turns to be very weird when comes to actual writing. While it may be a straight thing to use a locator strategy suggested by the recorded test, this is seldom useful while dealing with dynamic resources. One of them is finding locators.

There are many ways to detect locators in selenium. One way is via Selenium IDE,which records the user action and in return gives the locator. The other way is to find the locator via HTML from web page.
Continue reading “Introduction to Selenium Locators.”

Selenium, Testing, Timeout in Selenium, Web Automation, Web Testing

Manage your Selenium scripts with TimeOuts , implicit and explicit waits in.

The most common problem which I used to face while running selenium test scripts is because of the intervention of threads .I went through many forums and communities to see the solution of this problem but was not able to  find the best way out to resolve this problem. So just gave a thought, to write a blog stating the solution which I applied in my project to resolve the time out problems.

While working in a project I faced the same and resolved it via writing a code and separating a class of thread return and thread timeout handling.

Many of the selenium users might have seen this ERROR erstwhile running the scripts.

ERROR: Timed out after 30000ms

Continue reading “Manage your Selenium scripts with TimeOuts , implicit and explicit waits in.”

Selenium, Testing

Lets talk Selenium !!

In today’s fast paced world, the task of manual testing where huge amounts of data is involved looks very cumbersome. Time is like the wind, it lifts the light and leaves the heavy. We have so little time to get all the things done which we want to do in our busy lives. This really comes into picture when it comes to running your own online business or site.

Many, perchance most, software applications today are written as web-based applications to be run in an Internet browser. The efficacy of testing these applications varies broadly amid-st companies and organizations. In an era of highly interactive and susceptible software processes where many organizations are using some form of Agile methodology, test automation is frequently becoming a exigency for software projects. Test automation is oftentimes the answer. Test automation means using a software tool to run repeatable tests against the application to be tested.

Continue reading “Lets talk Selenium !!”