I used Selenium with Python Chrome webdriver.
In my code I used:
driver = webdriver.Chrome(executable_path = PATH_TO_WEBDRIVER)
to point the webdriver to the webdriver executable. Is there a way to point webdriver to the Chrome Browser binaries?
In https://sites.google.com/a/chromium.org/chromedriver/capabilities they have the following (which I assume it what I’m looking for):
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
Anyone has an example for Python?
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
You can set Chrome Browser Binary location through ChromeDriver using Python ing the following different ways:
Using Options
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.binary_location = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"
driver = webdriver.Chrome(chrome_options=options, executable_path="C:/Utility/BrowserDrivers/chromedriver.exe", )
driver.get('http://google.com/')
Using DesiredCapabilities
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
cap = DesiredCapabilities.CHROME
cap = {'binary_location': "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"}
driver = webdriver.Chrome(desired_capabilities=cap, executable_path="C:\Utility\BrowserDrivers\chromedriver.exe")
driver.get('http://google.com/')
Using Chrome as a Service
from selenium import webdriver
import selenium.webdriver.chrome.service as service
service = service.Service('C:\Utility\BrowserDrivers\chromedriver.exe')
service.start()
capabilities = {'chrome.binary': "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"}
driver = webdriver.Remote(service.service_url, capabilities)
driver.get('http://www.google.com')
Method 2
Thanks a lot I was struggling with this for 2.5 hours as I did not know how to set the Chrome Executable path in Python. Works now
options = Options() options.binary_location = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe" driver = webdriver.Chrome(chrome_options=options, executable_path="C:/Utility/BrowserDrivers/chromedriver.exe", )
Method 3
Is there a way to point webdriver to the Chrome Browser binaries?
As others have already stated, use binary_location. However, the location of Chrome moves around depending on the the platform. Fedora and Ubuntu use different locations. So you may want to use something like:
def get_chrome():
if os.path.isfile('/usr/bin/chromium-browser'):
return '/usr/bin/chromium-browser'
elif os.path.isfile('/usr/bin/chromium'):
return '/usr/bin/chromium'
elif os.path.isfile('/usr/bin/chrome'):
return '/usr/bin/chrome'
elif os.path.isfile('/usr/bin/google-chrome'):
return '/usr/bin/google-chrome'
else:
return None
And then:
if version.parse(selenium.__version__) >= version.parse("3.0"):
opts = Options()
opts.binary_location = get_chrome()
opts.add_argument('--headless')
opts.add_argument('--no-sandbox')
opts.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome(chrome_options=opts)
driver.maximize_window()
else:
opts = Options()
opts.headless = True
opts.binary_location = get_chrome()
driver = webdriver.Chrome(chrome_options=opts)
driver.maximize_window()
agent = driver.execute_script('return navigator.userAgent')
Method 4
First of all if you want to use chrome then you need to download it’s binary from below URL :-
https://sites.google.com/a/chromium.org/chromedriver/
Now you need to pass this driver path to the selenium webdriver.
If you are using python the code should be like below :-
driver = webdriver.Chrome('C:UsersnameDownloadschromedriver_win32 (3)chromedriver.exe')
driver.implicitly_wait(30) # seconds
driver.get('https://www.google.co.in/')
Hope it will help you 🙂
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0