Set chrome browser binary through chromedriver in Python

前端 未结 4 1782
醉梦人生
醉梦人生 2020-12-01 16:38

I used Selenium with Python Chrome webdriver. In my code I used:

driver = webdriver.Chrome(executable_path = PATH_TO_WEBDRIVER)

to point th

相关标签:
4条回答
  • 2020-12-01 16:55

    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')
    
    0 讨论(0)
  • 2020-12-01 17:06

    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')
    
    0 讨论(0)
  • 2020-12-01 17:15

    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", )
    
    0 讨论(0)
  • 2020-12-01 17:16

    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:\Users\name\Downloads\chromedriver_win32 (3)\chromedriver.exe')
        driver.implicitly_wait(30) # seconds
        driver.get('https://www.google.co.in/')
    

    Hope it will help you :)

    0 讨论(0)
提交回复
热议问题