One way is to define the location in the capabilities with the Options
class:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = webdriver.ChromeOptions()
options.binary_location = r'C:/chromium-48/chrome.exe'
driver = webdriver.Chrome(chrome_options=options)
or with DesiredCapabilities
:
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
capa = DesiredCapabilities.CHROME;
capa['chromeOptions'] = {
'binary': r'C:/chromium-48/chrome.exe',
'args': []
}
driver = webdriver.Chrome(desired_capabilities=capa)
But if you are looking for a scalable solution, then you should setup a grid with the different versions:
java -jar selenium-server-standalone-2.53.1.jar -role hub -host 0.0.0.0 -port 4444
- Start a node for version 48:
java -jar selenium-server-standalone-2.53.1.jar
-role node
-hub http://localhost:4444/grid/register
-browser platform=WINDOWS,browserName=chrome,version=48,chrome_binary="C:/chromium-48/chrome.exe"
- Start a node for version 54:
java -jar selenium-server-standalone-2.53.1.jar
-role node
-hub http://localhost:4444/grid/register
-browser platform=WINDOWS,browserName=chrome,version=54,chrome_binary="C:/chromium-54/chrome.exe"
You can then choose the version directly in the capabilities:
from selenium import webdriver
capa = {'browserName': 'chrome', 'version': '48', 'platform': 'ANY'}
driver = webdriver.Remote(command_executor='http://localhost:4444/wd/hub', desired_capabilities=capa)