Nexial Automation

Test Automation Platform for everyone!

X

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 the Google Chrome Beta version browser and set the driver manually for this.

But…

There are two possible issues that might arise:

  1. 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).
  2. 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.

Forcefully update webdriver

  1. Open Windows Explorer and go to C:\Users\%USER_ID%\.nexial directory. %USER_ID% refers to your user ID.
    Or simply, open the Run dialog via WINDOWS+r, type .nexial and then click the OK button.
  2. 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, if chromedriver needs to be updated, simple delete the chrome folder.
  3. Nexial will install the latest webdriver as part of the next execution.


Forcefully omit webdriver update

  1. Open Windows Explorer and go to C:\Users\%USER_ID%\.nexial directory. %USER_ID% refers to your user ID.
    Or simply, open the Run dialog via WINDOWS+r, type .nexial and then click the OK button.
  2. Open the corresponding sub-directory for the webdriver in question.
    For example, if user wants to omit update for chromedriver open the chrome directory.
  3. Open the .manifest file with a text editor.
  4. Set "neverCheck" to true and save the file
  5. 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.
  6. Start your execution on Nexial.