Ejemplo n.º 1
0
    def __init__(self,
                 executable_path,
                 port=0,
                 quiet=False,
                 service_args=None):
        """
        Creates a new instance of the Service

        :Args:
         - executable_path : Path to the SafariDriver
         - port : Port the service is running on
         - quiet : Suppress driver stdout and stderr
         - service_args : List of args to pass to the safaridriver service """

        if not os.path.exists(executable_path):
            if "Safari Technology Preview" in executable_path:
                message = "Safari Technology Preview does not seem to be installed. You can download it at https://developer.apple.com/safari/download/."
            else:
                message = "SafariDriver was not found; are you running Safari 10 or later? You can download Safari at https://developer.apple.com/safari/download/."
            raise Exception(message)

        if port == 0:
            port = utils.free_port()

        self.service_args = service_args or []

        self.quiet = quiet
        log = PIPE
        if quiet:
            log = open(os.devnull, 'w')
        service.Service.__init__(self, executable_path, port, log)
Ejemplo n.º 2
0
    def __init__(self,
                 executable_path='MicrosoftWebDriver.exe',
                 capabilities=None,
                 port=0,
                 verbose=False,
                 service_log_path=None,
                 log_path=None,
                 keep_alive=False):
        """
        Creates a new instance of the chrome driver.

        Starts the service and then creates new instance of chrome driver.

        :Args:
         - executable_path - path to the executable. If the default is used it assumes the executable is in the $PATH
         - capabilities - Dictionary object with non-browser specific
           capabilities only, such as "proxy" or "loggingPref".
         - port - port you would like the service to run, if left as 0, a free port will be found.
         - verbose - whether to set verbose logging in the service
         - service_log_path - Where to log information from the driver.
         - log_path: Deprecated argument for service_log_path
         - keep_alive - Whether to configure ChromeRemoteConnection to use HTTP keep-alive.
         """
        if log_path:
            warnings.warn('use service_log_path instead of log_path',
                          DeprecationWarning,
                          stacklevel=2)
            service_log_path = log_path

        self.port = port
        if self.port == 0:
            self.port = utils.free_port()

        self.edge_service = Service(executable_path,
                                    port=self.port,
                                    verbose=verbose,
                                    log_path=service_log_path)
        self.edge_service.start()

        if capabilities is None:
            capabilities = DesiredCapabilities.EDGE

        RemoteWebDriver.__init__(self,
                                 command_executor=RemoteConnection(
                                     'http://localhost:%d' % self.port,
                                     resolve_ip=False,
                                     keep_alive=keep_alive),
                                 desired_capabilities=capabilities)
        self._is_remote = False
Ejemplo n.º 3
0
    def __init__(self,
                 executable,
                 port=0,
                 log_file=DEVNULL,
                 env=None,
                 start_error_message=""):
        self.path = executable

        self.port = port
        if self.port == 0:
            self.port = utils.free_port()

        if not _HAS_NATIVE_DEVNULL and log_file == DEVNULL:
            log_file = open(os.devnull, 'wb')

        self.start_error_message = start_error_message
        self.log_file = log_file
        self.env = env or os.environ
Ejemplo n.º 4
0
    def __init__(self, host, firefox_profile, firefox_binary=None, timeout=30):
        self.profile = firefox_profile
        self.binary = firefox_binary
        HOST = host
        timeout = int(timeout)

        if self.binary is None:
            self.binary = FirefoxBinary()

        if HOST is None:
            HOST = "127.0.0.1"

        PORT = utils.free_port()
        self.profile.port = PORT
        self.profile.update_preferences()

        self.profile.add_extension()

        self.binary.launch_browser(self.profile, timeout=timeout)
        _URL = "http://%s:%d/hub" % (HOST, PORT)
        RemoteConnection.__init__(self, _URL, keep_alive=True)
Ejemplo n.º 5
0
    def __init__(self,
                 executable_path='IEDriverServer.exe',
                 capabilities=None,
                 port=DEFAULT_PORT,
                 timeout=DEFAULT_TIMEOUT,
                 host=DEFAULT_HOST,
                 log_level=DEFAULT_LOG_LEVEL,
                 service_log_path=DEFAULT_SERVICE_LOG_PATH,
                 options=None,
                 ie_options=None,
                 desired_capabilities=None,
                 log_file=None,
                 keep_alive=False):
        """
        Creates a new instance of the chrome driver.

        Starts the service and then creates new instance of chrome driver.

        :Args:
         - executable_path - path to the executable. If the default is used it assumes the executable is in the $PATH
         - capabilities: capabilities Dictionary object
         - port - port you would like the service to run, if left as 0, a free port will be found.
         - timeout - no longer used, kept for backward compatibility
         - host - IP address for the service
         - log_level - log level you would like the service to run.
         - service_log_path - target of logging of service, may be "stdout", "stderr" or file path.
         - options - IE Options instance, providing additional IE options
         - ie_options - Deprecated argument for options
         - desired_capabilities - alias of capabilities; this will make the signature consistent with RemoteWebDriver.
         - log_file - Deprecated argument for service_log_path
         - keep_alive - Whether to configure RemoteConnection to use HTTP keep-alive.
        """
        if log_file:
            warnings.warn('use service_log_path instead of log_file',
                          DeprecationWarning,
                          stacklevel=2)
            service_log_path = log_file
        if ie_options:
            warnings.warn('use options instead of ie_options',
                          DeprecationWarning,
                          stacklevel=2)
            options = ie_options
        self.port = port
        if self.port == 0:
            self.port = utils.free_port()
        self.host = host

        # If both capabilities and desired capabilities are set, ignore desired capabilities.
        if capabilities is None and desired_capabilities:
            capabilities = desired_capabilities

        if options is None:
            if capabilities is None:
                capabilities = self.create_options().to_capabilities()
        else:
            if capabilities is None:
                capabilities = options.to_capabilities()
            else:
                # desired_capabilities stays as passed in
                capabilities.update(options.to_capabilities())

        self.iedriver = Service(executable_path,
                                port=self.port,
                                host=self.host,
                                log_level=log_level,
                                log_file=service_log_path)

        self.iedriver.start()

        RemoteWebDriver.__init__(self,
                                 command_executor='http://localhost:%d' %
                                 self.port,
                                 desired_capabilities=capabilities,
                                 keep_alive=keep_alive)
        self._is_remote = False