I have created a docker selenium image on ubuntu and have my selenium test cases executed with it. But I do see quite a few random failures.
Does anyone know the good version of:
1) Chrome,
2) Chromedriver,
3) Selenium,
4) TestNG,
5) Docker(?)
6) JDK
that totally it may give me the highest success rate ? Thanks.
There is no all-purpose correct version combinations here. I believe that you can evaluate this trying continuously different versions and see which one of them behaves the best for you.
There will always be some random failures caused by setup issues.
1) Chrome
This depends on the application you are testing and how it behaves on the given browser version. Some changes to the browsers affect in a terrible way some web apps. So we can't propose you specific version without any knowledge about your app. It really depends on many factors.
2) Chrome Driver
Each version of Chrome Driver is recommended for specified chrome versions so it depends on the browser version.
3) Selenium has some bug fixes in it's newer versions so in the perfect case you should use the newest version. But there is no guarantee that it will fit you the best.
4) TestNG - it depends on the way you use it so nothing more can be said here.
5) Docker - not sure if the Docker version can affect in some way the test executions. But it might depend on the selenium version.
6) JDK depends on your tests implementation. Are you using new java features and etc. Actually it should have minimal impact over the test executions
Related
I am using selenoid for automated e2e-testing and really like it. To ensure browser support on all versions, I am testing with different versions of Chrome/FF and now would need to also test with the beta versions of these browsers.
I found out here that there is no built-in image for beta versions.
Is there another way to use beta versions anyway?
We provide all automation scripts used to build browser images. See this repository.
Regarding beta images - we have an issue and hope to start building more versions including ESR and beta during next months.
I've just started learning WebdriverIO So I have quick question. On their github repository I have seen older version of chrome & firefox. So will WebdriverIO work with updated Chrome version e.g 62.x or Firefox with 47.x ?
Also will it work with selenium 3.x ?? I have heard that its only has a support for selenium version 2.x??
Thanks
The only difference between Selenium 2 & Selenium 3 is that they renounced the old Selenium RC architecture and now they are solely implementing the Webdriver W3C Standard, which I highly recommend you read.
Renouncing Selenium RC means that there is no backwards compatibility between Selenium 1 and 3, Selenium 2 being a middle way to ease the migration to the new Webdriver API implementation.
You should have absolutely no problem running with Selenium 3.x.
That being said, I am speaking out of experience (going for second year with a WebdriverIO-based framework). I never had any major problems with WebdriverIO and the main issues you'll encounter are the following:
driver teams (gheckodriver, chromedriver, etc) not implementing the Webdriver standard correctly (just file a BUG, or keep a lookout for already opened issues related to your problem on their respective GitHub Issues page);
major browsers having switched to a more aggressive release schedule will sometimes push new features not tackled by the equivalent driver, thus by updating, you might end up with failing checks;
deprecation and/or lacking/limited functionality: the guys working on WebDriver will cut and add features in accordance with how they see the progression of web-apps automation, so you will always have to switch to some new methods/approaches/best-practices every now & then.
!!! Note: all this free-software (Selenium, WebdriverIO, etc.) you're enjoying is mostly produced by a
handful of people that sacrifice their free/spare time to deliver it. It's not their job to deliver BUG-fixes and deploy like Google does with Chrome (every six weeks).
So have patience & if you can, contribute! :)
Since the version of Selenium that we're currently using with PHPUnit does not appear to be compatible with versions of Firefox beyond version 42, we need to be able to have our tests check the version of the installed Firefox in case someone upgraded it and have it let us know that that's the issue as to why the tests failed.
Does anyone know how we can get the browser version? (Note: This is not a duplicate of this question, as we have do do it within the PHPUnit framework, and that question is about a Python solution that works directly with Selenium.)
Phantomjs is webkit based. That means of the major browsers it's really only emulating Chrome, right? Does it provide a mechanism (or is there a way to force it) to provide sufficient test coverage for other browsers, aside from wrapping it in Selenium?
No. Current PhantomJS is a version of WebKit that is roughly equivalent to Chrome 13 or Safari 5.1, but it is neither of those browsers. (Chrome and Safari behave differently too.) (BTW, PhantomJS 2.0 is hopefully going to have the webkit separately linkable, so you can use different versions.)
If you move to using CasperJS, then your same script can (usually) run with each of PhantomJS and SlimerJS, which will give you test coverage for both WebKit and Gecko (Firefox). SlimerJS also allows you to directly use a local installation of Firefox instead of the supplied Gecko engine, if you wanted to test against different Firefox versions.
Is Selenium paltform specific. If yes then how can I develop a cross-platform specific application with it by first identifying the platform and then call the platform-specific selenium routines.
The IDE is a firefox plugin, but you can develop tests in multiple languages, which run on and against multiple platforms (including multiple browsers). Not really sure what you're trying to accomplish, but hopefully that helps.
Selenium is platform independent. This is because you run a Selenium RC server (which is a java application and hence can be run on any platform). Then you send selenese commands to the server which controls the testing activity on the browser. To send the selenese commands you can use any language (such as Java, PHP, Ruby etc). Now this again does not limit you in any way to a certain OS.
If you are using the Firefox plugin IDE to run the test cases then of course the platforms supported would be limited to platforms supported by Firefox.
Hope that answers.
I may be misunderstanding your question, but:
With Selenium RC (or Grid, more specifically), you can specify what platform you want your test to run on. Each node registers with the hub under a particular platform, and each test's DesiredCapabilities can request a platform.
As the other answers have stated, Selenium itself is platform independent but you can run your tests on a by-platform by-browser basis. Either way, the tests (in theory) should look the same and use the same native Selenium commands.
I am not so familiar with Selenium, but it looks to me that it works almost everywhere where you can install Firefox 2+.
Platforms Supported by Selenium
I'm using Selenium for a project that runs under Windows and Ubuntu. The only platform specific code is for starting the environment where it executes (headless X server under Ubuntu) and starting the Selenium jar file. The rest is all platform independent. I don't know if this will also work as smoothly when you try to use different browsers (I'm using Firefox on both platforms).