def __init__(self, executable_path="phantomjs", port=0, desired_capabilities=DesiredCapabilities.PHANTOMJS, service_args=None, service_log_path=None): """ Creates a new instance of the PhantomJS / Ghostdriver. Starts the service and then creates new instance of the driver. :Args: - executable_path - path to the executable. If the default is used it assumes the executable is in the $PATH - port - port you would like the service to run, if left as 0, a free port will be found. - desired_capabilities: Dictionary object with non-browser specific capabilities only, such as "proxy" or "loggingPref". - service_args : A List of command line arguments to pass to PhantomJS - service_log_path: Path for phantomjs service to log to. """ self.service = Service(executable_path, port=port, service_args=service_args, log_path=service_log_path) self.service.start() command_executor = self.service.service_url try: RemoteWebDriver.__init__(self, command_executor=command_executor, desired_capabilities=desired_capabilities) except: self.quit() raise self._is_remote = False # Patch to support Native PhantomJS script self.command_executor = RemoteConnection(command_executor, keep_alive=False) Command.EXECUTE_PHANTOM_SCRIPT = "executePhantomScript" self.command_executor._commands[Command.EXECUTE_PHANTOM_SCRIPT] = ("POST", "/session/$sessionId/phantom/execute")
def __init__(self, driverType='phantomjs', user=''): if driverType == 'phantomjs': try: self.runseleniumserver() service = Service('/usr/local/share/phantomjs/bin/phantomjs', service_args=['--webdriver=8910','--webdriver-selenium-grid-hub=http://127.0.0.1:4444/grid/register']) service.start() print "started service" except Exception as e: print 'Couldnt start service...' print type(e) print e return driver = BrowsingManager.getDriver(self, driverType) if driver: self.driver = driver self.id = user self.log = user self.track = user+'.trck' self.cookie = user+'.cook'
def __init__(self, executable_path="phantomjs", port=0, desired_capabilities=DesiredCapabilities.PHANTOMJS, service_args=None, service_log_path=None): """ Creates a new instance of the PhantomJS / Ghostdriver. Starts the service and then creates new instance of the driver. :Args: - executable_path - path to the executable. If the default is used it assumes the executable is in the $PATH - port - port you would like the service to run, if left as 0, a free port will be found. - desired_capabilities: Dictionary object with non-browser specific capabilities only, such as "proxy" or "loggingPref". - service_args : A List of command line arguments to pass to PhantomJS - service_log_path: Path for phantomjs service to log to. """ self.service = Service(executable_path, port=port, service_args=service_args, log_path=service_log_path) self.service.start() command_executor = self.service.service_url try: RemoteWebDriver.__init__(self, command_executor=command_executor, desired_capabilities=desired_capabilities) except: self.quit() raise self._is_remote = False # Patch to support Native PhantomJS script self.command_executor = RemoteConnection(command_executor, keep_alive=False) Command.EXECUTE_PHANTOM_SCRIPT = "executePhantomScript" self.command_executor._commands[Command.EXECUTE_PHANTOM_SCRIPT] = ( "POST", "/session/$sessionId/phantom/execute")
class WebDriver(RemoteWebDriver): """ Wrapper to communicate with PhantomJS through Ghostdriver. You will need to follow all the directions here: https://github.com/detro/ghostdriver """ def __init__(self, executable_path="phantomjs", port=0, desired_capabilities=DesiredCapabilities.PHANTOMJS, service_args=None, service_log_path=None): """ Creates a new instance of the PhantomJS / Ghostdriver. Starts the service and then creates new instance of the driver. :Args: - executable_path - path to the executable. If the default is used it assumes the executable is in the $PATH - port - port you would like the service to run, if left as 0, a free port will be found. - desired_capabilities: Dictionary object with non-browser specific capabilities only, such as "proxy" or "loggingPref". - service_args : A List of command line arguments to pass to PhantomJS - service_log_path: Path for phantomjs service to log to. """ self.service = Service(executable_path, port=port, service_args=service_args, log_path=service_log_path) self.service.start() command_executor = self.service.service_url try: RemoteWebDriver.__init__(self, command_executor=command_executor, desired_capabilities=desired_capabilities) except: self.quit() raise self._is_remote = False # Patch to support Native PhantomJS script self.command_executor = RemoteConnection(command_executor, keep_alive=False) Command.EXECUTE_PHANTOM_SCRIPT = "executePhantomScript" self.command_executor._commands[Command.EXECUTE_PHANTOM_SCRIPT] = ( "POST", "/session/$sessionId/phantom/execute") def quit(self): """ Closes the browser and shuts down the PhantomJS executable that is started when starting the PhantomJS """ try: RemoteWebDriver.quit(self) except: # We don't care about the message because something probably has gone wrong pass finally: self.service.stop() def execute_phantomjs(self, script, *args): """ Synchronously Executes JavaScript in the PhantomJS context. This allows access to advanced features like clipRect. :Args: - script: The JavaScript to execute. - \*args: Any applicable arguments for your JavaScript. :Usage: driver.execute_phantomjs('') """ #script = script.replace("\"", "\\\"") converted_args = list(args) return self.execute(Command.EXECUTE_PHANTOM_SCRIPT, { 'script': script, 'args': converted_args })['value']
class WebDriver(RemoteWebDriver): """ Wrapper to communicate with PhantomJS through Ghostdriver. You will need to follow all the directions here: https://github.com/detro/ghostdriver """ def __init__(self, executable_path="phantomjs", port=0, desired_capabilities=DesiredCapabilities.PHANTOMJS, service_args=None, service_log_path=None): """ Creates a new instance of the PhantomJS / Ghostdriver. Starts the service and then creates new instance of the driver. :Args: - executable_path - path to the executable. If the default is used it assumes the executable is in the $PATH - port - port you would like the service to run, if left as 0, a free port will be found. - desired_capabilities: Dictionary object with non-browser specific capabilities only, such as "proxy" or "loggingPref". - service_args : A List of command line arguments to pass to PhantomJS - service_log_path: Path for phantomjs service to log to. """ self.service = Service(executable_path, port=port, service_args=service_args, log_path=service_log_path) self.service.start() command_executor = self.service.service_url try: RemoteWebDriver.__init__(self, command_executor=command_executor, desired_capabilities=desired_capabilities) except: self.quit() raise self._is_remote = False # Patch to support Native PhantomJS script self.command_executor = RemoteConnection(command_executor, keep_alive=False) Command.EXECUTE_PHANTOM_SCRIPT = "executePhantomScript" self.command_executor._commands[Command.EXECUTE_PHANTOM_SCRIPT] = ("POST", "/session/$sessionId/phantom/execute") def quit(self): """ Closes the browser and shuts down the PhantomJS executable that is started when starting the PhantomJS """ try: RemoteWebDriver.quit(self) except: # We don't care about the message because something probably has gone wrong pass finally: self.service.stop() def execute_phantomjs(self, script, *args): """ Synchronously Executes JavaScript in the PhantomJS context. This allows access to advanced features like clipRect. :Args: - script: The JavaScript to execute. - \*args: Any applicable arguments for your JavaScript. :Usage: driver.execute_phantomjs('') """ #script = script.replace("\"", "\\\"") converted_args = list(args) return self.execute(Command.EXECUTE_PHANTOM_SCRIPT, {'script': script, 'args':converted_args})['value']