7

I found lots of information about this topic, however, it wasn't really up to date.

I'm interested if there is a better alternative to Selenium WebDriver for a Web Application/Windows/Chrome/Mostly functional testing.

Should I look deeper into HP UFT/CODED UI/PhantomJS or in such application there is nothing to think about and simply go with Selenium WebDriver?(Assuming I have the knowledge of setting up things) I would really appreciate an up to date information or links to sources where I can research it myself.

P.S I do have knowledge in Java/C#/JS/PHP so it is not the case where I'm looking for a record and play tool.

8
  • What is missing in Selenium that makes you lookoing for alternatives?
    – dzieciou
    May 10 '17 at 22:11
  • @dzieciou feeling that i might miss something important.
    – R.Ro
    May 11 '17 at 6:12
  • There was some confusion in wording as question was asked, but I suggest OP to edit it, because it got clarified in comments to accepted answer (making the question more valuable to the community). I suggest NOT to close it. May 11 '17 at 16:03
  • Also, OP should state his/her current programming skills, to get more relevant answers. May 11 '17 at 16:04
  • 1
    I wrote an answer for a similar question in Quora (quora.com/What-are-some-great-alternatives-to-selenium-testing/…). At this moment, Katalon Studio (katalon.com) is your best choice - it's free and have tons of features for both newbies and experienced QAs. Oct 13 '17 at 3:13
6

Selenium webdriver is W3C standard for browser automation, so any "better alternative" is a niche solution.

"Record and play" tools may generate "tests" for you. Of course you will lose all the benefits of concise solution which you can get by using real programming language.

Script may for example set up correct date (say, 1 hour from now), can wait in much smarter ways for different ExpectedConditions (it's module name), detect page status (presence/absence of certain elements) and perform conditional actions according to detected page status, and most important of all, code can be refactored to be reused, so one call might replace dozens of clicks

In Beating Averages, famous programmer Paul Graham defined "blob programmer" and programming languages hierarchy. Very enlightening reading.

"There is no silver bullet" (google it). For test automation, you need to become competent programmer. Python is widely considered easiest for beginners, but you still need to invest months (and years) of effort to become competent coder.

One design pattern you need for automated tests is Page Object - page provides "services" for tests and hides the implementation and locators of the widgets, so even if page is redesigned, changes to tests are limited or none.

Also, PhantomJS seems to be abandoned by core developer, recommended alternative is "headless" Chrome. Standard Chrome browser run in "headless" mode, like Google does it.

Re: WebDriver as W3C standard:

W3C suggests standards. Browser providers are expected to implement it. WebDriver (for each browser) is separate software which "drives" company's browser (using all the inside info they have about own browser), so for test using Selenium/WebDriver, all browsers can look/behave the same (WebDriver hides the difference and implements standard interface to perform standardized actions).

Inevitably there would be bugs in specific webdriver implementations, and some more obscure WebDriver commands might be not yet implemented in every browser driver ("there is no silver bullet" yet again), but overall, Selenium WebDriver is excellent solution.

8
  • I'm comfortable with programming languages and on a decent level so that's not the case. It's more like i'm worried that i'm missing something. Testing out every tool myself is way to time consuming and finding up to date information was also a challenge. But this is really useful information about W3C standard, thank you a lot!
    – R.Ro
    May 11 '17 at 6:08
  • If you are decent programmer, pick up webdriver bindings for your language of choice, and you are all set. And do read the "Beating Averages" article. It will get you interested in learning more and more different languages - it is like weightlifting exercises for brain. May 11 '17 at 13:16
  • 1
    See also my comments about PhantomJS vs headless Chrome. May 11 '17 at 13:19
  • Thank you! I really appreciate it and it is indeed useful information.
    – R.Ro
    May 11 '17 at 14:55
  • I do have a fast question considering your answer about the W3C standard. Is Selenium the one and only official standard?
    – R.Ro
    May 11 '17 at 15:01
2

One option is GhostInspector, a gui tool with many cool features.

https://ghostinspector.com/

It's fairly new (2015/2016) and being actively developed.

1
  • Thank you a lot for the reply. Seems a very young tool but i'm also going to check it out.
    – R.Ro
    May 11 '17 at 6:16
2

Cypress.IO is building a full replacement for Selenium. Check their reasoning here.

Isn't this just another test runner like Karma, Test'em, etc?

Cypress replaces your existing test runner, but goes much, much further. Cypress automatically monitors test files, reloads changes in real time, processes and builds JS files, and is highly configurable. It additionally offers a GUI to see your tests run in the browser with your app, offers smart debugging feedback, and has built in mocking, spies, and stubbing.

Do I need to run PhantomJS / Selenium Web Driver?

No. Cypress replaces Selenium completely, and is completely different than PhantomJS. Cypress is not a headless browser. It has a headless mode using Chromium that can be used for continuous integration.

Still in Private Beta, but:

When Cypress releases its public beta, we will open source the code base.

4
  • Seems very user friendly, promising and amazing! Although, it's a bit unclear how it will overcome Selenium's cross browser support but i'm definitely trying it out. Any information on the public beta release? Thank you.
    – R.Ro
    May 12 '17 at 8:09
  • I think it won't do cross browser testing, but wonder if you really need that. First is to safeguard functionality, as most browsers come closer together we have been having less and less crossbrowser issues anyways. You can sign up for the private release by clicking the 'early access' button. I haven't yet, but got the info from Xebia (xebia.com/test-automation-quality) which is pretty big in software and testing. I think they are pushing for something like this, but I don't know everything about it. Just wanted to drop the name as an alternative that looks promising :) May 12 '17 at 8:13
  • Got it, thank you for the useful information!
    – R.Ro
    May 12 '17 at 8:26
  • Cypress is now out of private beta and it's main code base is open source here: github.com/cypress-io/cypress Nov 9 '17 at 20:05
1

Take a look at those:

TestComplete

  • Support record-and-replay and several scripting languages like Python and Javascript.

Ranorex

  • Support record-and-replay and C#.

But they will cost you a bit money to use.

1
  • Thank you for the reply i'll take a closer look on these tools.
    – R.Ro
    May 11 '17 at 6:14

Not the answer you're looking for? Browse other questions tagged or ask your own question.