# Copyright (c) 2012 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """Chrome-specific options for configuring a ChromeDriver instance.""" import base64 class ChromeOptions(object): """Chrome-specific options for configuring a ChromeDriver instance.""" def __init__(self): """Initialize ChromeOptions object.""" self._capabilities = {'chrome.switches': [], 'chrome.extensions': []} def AddSwitch(self, switch): """Add a switch to be passed to Chrome. Args: switch: String switch to be passed to Chrome. """ self._capabilities['chrome.switches'].append(switch) def AddExtension(self, extension): """Add an extension to be loaded onto Chrome. Args: extension: String path to the extension to be loaded onto Chrome. """ with open(extension, 'rb') as ext_file: self._capabilities['chrome.extensions'].append( base64.b64encode(ext_file.read())) def SetUserDataDir(self, user_data_dir): """Set the Chrome user data dir. Args: user_data_dir: String path to the profile directory. """ self.AddSwitch('user-data-dir=%s' % user_data_dir) def GetCapabilities(self): """Returns a capabilities object suitable for using with ChromeDriver.""" return self._capabilities