8 # We assume that this handle can only be used when the platform is OSX
9 from AppKit import NSRunningApplication
10 from browser_driver import BrowserDriver
13 _log = logging.getLogger(__name__)
16 class OSXChromeDriver(BrowserDriver):
20 self.chromePreferences = []
22 def launchUrl(self, url, browserBuildPath):
23 if not browserBuildPath:
24 browserBuildPath = '/Applications/'
25 _log.info('Launching chrome: %s with url: %s' % (os.path.join(browserBuildPath, 'Google Chrome.app'), url))
26 # FIXME: May need to be modified for develop build, such as setting up libraries
27 subprocess.Popen(['open', '-a', os.path.join(browserBuildPath, 'Google Chrome.app'), '--args', '--homepage', url] + self.chromePreferences).communicate()
29 def closeBrowsers(self):
30 _log.info('Closing all existing chrome processes')
31 chromes = NSRunningApplication.runningApplicationsWithBundleIdentifier_('com.google.Chrome')
32 for chrome in chromes: