Forcefully update or omit webdriver updates
Description
Currently Nexial automatically downloads and installs the latest webdriver in accordance to the target browser specified for an execution. This might result in a slight delay during the initial execution when the corresponding webdriver is not yet installed. However the overall benefits are a smaller Nexial distribution to download (or to update), a smaller footprint on the test harness (the compute resource where the execution is conducted), and a simpler way to manage webdriver updates. Webdriver development are maintained by separate third-party teams, often open-source teams. As such, one needs to stay up-to-date with their development progress in order to obtain the appropriate webdriver suitable for one’s automation needs. Nexial simplifies this via periodic, automatic webdriver updates.
As of now, below is the webdriver update schedule in Nexial:
Webdriver Update Schedule
Browser | WebDriver | Update Frequency | Update From |
---|---|---|---|
Firefox | geckodriver |
after browser update or Bi-weekly | https://github.com/mozilla/geckodriver/releases |
Chrome | chromedriver |
after browser update or Bi-weekly | https://chromedriver.chromium.org/downloads |
Electron | a fork of chromedriver |
Bi-weekly | https://github.com/electron/electron/releases |
Internet Explorer | IEDriverServer |
Bi-weekly | http://selenium-release.storage.googleapis.com/index.html |
Microsoft Edge | MicrosoftWebDriver |
None; pre-installed as part of Windows 10 | |
BrowserStack | BrowserStackLocal |
Monthly | https://www.browserstack.com/local-testing/automate |
CrossBrowserTesting | cbt_tunnels |
Monthly | https://github.com/crossbrowsertesting/cbt-tunnel-nodejs/releases |
How does Nexial update the webdriver
As part of the webdriver installation, Nexial creates a .manifest
file in the same directory of the webdriver. This
.manifest
file contains the “last check timestamp” such that Nexial can use it to determine the next “check for
update”. During execution, if Nexial determines that the corresponding webdriver is due for a “check for update”, it
will automate the checking process (against the appropriate webdriver website). If a newer webdriver is found, the
download and installation process will occur immediately. Subsequently the “last check timestamp” will be updated to
the corresponding .manifest
file. Webdrivers are installed to the $HOME/.nexial/{webdriver}
directory. Below is an
example of such directory, along with the .manifest
file:
The checking and update process are largely transparent to Nexial user, albeit a slight delay during installation process. However the benefits, as stated above, easily outweigh the infrequent and small delays.
NOTE for Chrome & Firefox browser
- Old version browser : If you have updated the browser to old version, Nexial will auto download the compatible web driver when you will execute the script. For example, if you are using firefox version 56 or chrome version 78 then system will download the compatible driver for this version.
- Stop auto update : To stop the Nexial auto update you can set the flag
neverCheck = true
in$HOME/.nexial/{webdriver}/.manifest
file. - Beta version browser : If you are using beta version browser you can set the flag
neverCheck = true
and manually download and place the driver at$HOME/.nexial/{webdriver}
directory. For example, you can download and install theGoogle Chrome Beta
version browser and set the driver manually for this.
But…
There are two possible issues that might arise:
- The target browser has been updated on your test harness between 2 consecutive “check for update”
intervals (e.g. browser is updated a few days after the last check).
- In this case, one can force Nexial to install the latest webdriver. See Forcefully update webdriver section below for details.
- The target browser is older than the corresponding webdriver - perhaps one might have good reason to retain an older
version of the browser.
- In such case, one can manually download the appropriate webdriver (if need be) and reconfigure the
corresponding
.manifest
file to omit any webdriver checks (and hence no updates). See Forcefully omit webdriver update section below for details.
- In such case, one can manually download the appropriate webdriver (if need be) and reconfigure the
corresponding
Forcefully update webdriver
-
Open Windows Explorer and go to
C:\Users\%USER_ID%\.nexial
directory. %USER_ID% refers to your user ID.
Or simply, open theRun
dialog viaWINDOWS+r
, type.nexial
and then click theOK
button.
-
Then, find the sub-directory under
C:\Users\%USER_ID%\.nexial
that corresponds to the webdriver to be updated. Simply delete that directory.
For example, ifchromedriver
needs to be updated, simple delete thechrome
folder.
- Nexial will install the latest webdriver as part of the next execution.
Forcefully omit webdriver update
-
Open Windows Explorer and go to
C:\Users\%USER_ID%\.nexial
directory. %USER_ID% refers to your user ID.
Or simply, open theRun
dialog viaWINDOWS+r
, type.nexial
and then click theOK
button.
-
Open the corresponding sub-directory for the webdriver in question.
For example, if user wants to omit update forchromedriver
open thechrome
directory.
-
Open the
.manifest
file with a text editor.
-
Set
"neverCheck"
totrue
and save the file
- You might need to download the appropriate webdriver and place it this sub-directory. Use the Webdriver Update Schedule above to download the appropriate webdriver, which should be unzipped/copied to the same sub-directory. In other words it should override existing webdriver file.
- Start your execution on Nexial.