Selenium HQ Review
BrowserStack and Sauce Labs work with it. It also can work with most of programming languages.


What is our primary use case?

We use it to make our UI functional tests, layout test, and any tests related to the browsers.

How has it helped my organization?

  1. We have automation tests (API, UI, unit, integration tests, and etc.). It saves on our manual QA time.
  2. It reduces our manual QA repeatable works.
  3. It saves our manual QA's energy.
  4. The QA time move from manual QA to automation QA, and improve the relationship between developer and QA, Since automation tests make them work closer.
  5. QA becomes more technical and love to know more about technical and architecture of the code such as they have to use GitHub, CI system, servers, and etc.
  6. QA know more about tests such as unit tests, integration tests, and Selenium UI tests.
  7. Make QA life much fun/easier.
  8. Deduce the developers work such as automation QA/developer develops the test library and test framework, both developer and QA, some times, PM also can develop their own tests by using the test library and test framework.

What is most valuable?

  1. Selenium is a good tool to do UI testing
  2. It works with many popular programming languages such as Java, JavaScript and etc.
  3. It supports most of the mainstream browsers such as Chrome, Firefox, IE and etc.
  4. It supports mobile local application as well and work with Appium.
  5. It is free.
  6. Selenium grid is a wonderful tool.
  7. BrowserStack and Sauce Labs work with Selenium.
  8. Headless browser, such as Xvfb and PhantomJS, can work with Selenium as well.
  9. Selenium works with CI system such as TeamCity, Jenkins, and CircleCI.
  10. Selenium can work with most programming languages. I use Java more as I am really comfortable using it.
  11. I do not use Selenium IDE, but it can help the beginner to learn how to find the elements by XPath, CSS selector, and etc.
  12. New geckodriver in new version of Selenium.
  13. It is able to work with Galen test framework to do layout test.

What needs improvement?

  1. Stability.
  2. Documentation, the Java doc description for most of the API is almost empty. No example with no detail.
  3. It is not easy to make IE plus Selenium work good as other browsers. Firefox and Chrome are the best ones to work with Selenium.
  4. Java gets a lot of supports. Python as well. However, it seems not PHP. It is amazing, and Selenium can work with a lot of programming languages.
  5. Firefox IDE tool needs to be improved.

What do I think about the stability of the solution?

Some times with timeout issues.

What do I think about the scalability of the solution?

When your tests number increases, driver manager and Selenium Grid performance become important.

How was the initial setup?

There are a lot of test frameworks that support Selenium.

Disclosure: I am a real user, and this review is based on my own experience and opinions.

2 Comments

Don IngersonConsultantELITE SQUADTOP 5

Michelle, a very informative review. How do you handle Windows dialog boxes in a script? For example if you have a File Download dialog box from a Web page how does Selenium handle this?

05 January 17
Michelle XIEReal UserTOP 5LEADERBOARD

It depends on which type of the windows dialog:
If it is a new browser dialog, selenium is able to click the button on that dialog by using switch windows method because your main window is window 1, then selenium opened a new one(the windows dialog) is window 2, switch to window 2 and click whatever you want.

If it is a modal, you can just directly operate that, since it is in the same window/browser.

Selenium test is not really a blackbox tests, if you know the front-end code of the application under testing, that would help you to choose correct selenium API to do that.

And also you can use
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].click();",
It is working for some cases too. It is still depends on the front-end code.

For your case, if it is a File download dialog window, I assume there is only "yes" and "no" button on it.

If it is an authentication window which requires you to enter "username" and "password", you may change your url to this way: driver.get("http://$username:$password@$yourURL")

05 January 17
Guest
Why do you like it?

Sign Up with Email