adamdriscoll/selenium-powershell

[Feature] Remove driver assemblies from the module

Opened this issue · 5 comments

Would it be an idea to remove the drivers from the module, this would reduce the size of the module and any complexity around keep them up to date between module versions. I think it would be better to just look for the drivers on the path and if not there advise they need to be present on the path. We could an an entry into the wiki for installation on the various platforms.

I'm just thinking long term it would be beneficial to reduce the complexity of the module to make it easier for people to chip with PR's etc.

If we're going to remove drivers from the module itself, I think it's only sensible to make sure the module is capable of retrieving and installing/updating necessary drivers first. I may be behind here, but doesn't it currently only have this capability for Chromium drivers?

Currently it does yes. But I think longer term its better to leave it to the end user to ensure whichever driver they want to use is installed and available on the path. This was they can keep them updated or at a certain level as they want if there is a particular version if they want.

Windows: Chocolatey/Scoop
Linux: distro package manager
OSX: Homebrew

I like the idea.
Drivers are a problem with this module for the longest time.
It was discussed about possibly having a pipeline to download the latest drivers and publish a new version of the module (#50) or thinking about ways to deal with it but...

I don't think this should be the responsibility of this module.
This module is about providing an interface to automate browser interactions through Selenium.

The products implicated here (Browsers and Selenium Drivers) evolves a lot quicker than this module.
They are also tightly coupled as you can't be far behind and using an old driver with a new browser won't work.

That being said, before decoupling anything, we'd need:

  • Documentation to give the user basic instructions (eg: use package provider or go to website (links))
  • Update Update-SeModule to include automated download of the drivers (Currently only Chrome)
  • throw an error if the driver is not found (eg: The driver for Chrome was not found. Use Update-SeModule to download it, specify a path in Start-SeDriver or read the doc at : XX to get started with downloading and installing the drivers)

I've had this issue with a scheduled script, that it will break periodically because Chrome updates. Would be great to at least have a better guide on the steps to take when the driver isn't compatible with the current version of chrome.

I can write a wiki article for driver installs on Win10, Linux and OSX. That's no problem. Then it's just a case of creating a path check function for the module to use to check the specified driver is on the path and fail if not.