On a recent training session, I was describing to the participants, why we need to keep our environments stable, and not just auto update everything.
We need to keep our browser versions from auto-updating, and we need to treat each new release of WebDriver as a mini upgrade project.
- Sometimes there are bugs in WebDriver.
- But sometimes WebDriver changes expose bugs in our use of WebDriver, or our assumptions in our use of WebDriver.
As a quick example, I’m building the source code for a tutorial that I will present at Let’s Test, and I’m making sure the code works on the Mac. I also want to try and update WebDriver to the latest version so that I’m good to go when the tutorial rolls around.
So I upgrade the version of WebDriver to 2.41.0 on my Mac, and run the tests. And some of my tests are failing.
I assume due to Mac (cross-platform) incompatibilities.
But I’ve made a cardinal sin.
I haven’t followed my own advice for upgrade processes.
- Make sure the tests are working and stable, before upgrading the environmental elements i.e. - browsers, and driver version
Fortunately it doesn’t take me too long to figure out that, I should really update the version of WebDriver on my windows box (where all the tests are running fine) first.
I do that, and I get the same issue.
And - as I mentioned in the course it has shown an error in my thinking, or assumption in WebDriver.
I’ve been using KEYS.ENTER to complete input fields. And now I need to use KEYS.RETURN
Before, it was an arbitrary choice for me, which one I used, but now, only KEYS.RETURN does what I want.
For some reason, that I haven’t investigated.
Very often with WebDriver, I’m more focused on what I try to do with it, than assuming it is a bug in WebDriver.
Here I think there is some nuance for the different keys that I haven’t understood, but I’m quite happy to change my tests to use KEYS.RETURN and have the tests working with 2.41.0, and with 2.40.0
Whereas, KEYS.ENTER, didn’t work with my use case on 2.41.0, but works fine for 2.40.0
- Upgrade on a stable platform
- Upgrade in steps: driver, then browsers
- Check small changes against previous versions of driver
- Don’t assume it is a cross platform issue
Of course, I still have to fix the ‘real’ cross platform issues - see the next posts for that.