def __init__(self, options, action): self.options = Options(options) self.action = action if options.env: venv_dir = options.env bin_dir = os.path.join(venv_dir, 'bin') else: bin_dir = os.path.dirname(os.path.realpath(inspect.stack()[-1][1])) venv_dir = os.path.dirname(bin_dir) LOG.info('Using sandbox directory: %s', venv_dir) params = Options() params.display = options.display jar_file = os.path.join(bin_dir, SELENIUM_JAR) params.jar = "-jar %s" % jar_file assert os.path.exists(jar_file), '%s not found' % jar_file var_run = os.path.join(venv_dir, 'var', 'run') var_log = os.path.join(venv_dir, 'var', 'log') if not os.path.exists(var_run): os.makedirs(var_run) if not os.path.exists(var_log): os.makedirs(var_log) params.dirs = dict(run=var_run, log=var_log, bin=bin_dir) params.pids = dict(xvfb='xvfb.pid', selenium='selenium.pid', selenium_node='selenium_node.pid', selenium_hub='selenium_hub.pid') params.logs = dict(xvfb='xvfb.log', selenium='selenium.log', selenium_node='selenium_node.log', selenium_hub='selenium_hub.log') if self.options.hub: params.hub = "-hub http://%s:4444/grid/register" % self.options.hub if not self.options.role: self.options.role = 'node' else: params.hub = '' if self.options.role: if self.options.role == 'hub': self.options.no_xvfb = True if self.options.role == 'node' and not self.options.hub: raise ValueError('--hub needs to be specified') params.role = "-role %s" % self.options.role else: params.role = '' self.params = params super(SeleniumRC, self).__init__()