Ejemplo n.º 1
0
 def _process_chrome_options(self, opts):
     if isinstance(opts, ChromeOptions):
         options = opts
     else:
         options = ChromeOptions()
         if 'args' in opts:
             for arg in opts.pop('args'):
                 options.add_argument(arg)
         if opts.pop('headless', None) or self.options.pop(
                 'headless', None):
             options.headless = True
         if 'binary' in opts or 'binary_location' in opts:
             options.binary_location = opts.pop('binary') or opts.pop(
                 'binary_location')
         if 'debugger_address' in opts:
             options.debugger_address = opts.pop('debugger_address')
         if 'extensions' in opts:
             for path in opts.pop('extensions'):
                 options.add_extension(path)
         if 'encoded_extensions' in opts:
             for string in opts.pop('encoded_extensions'):
                 options.add_encoded_extension(string)
         if 'experimental_options' in opts:
             for name, value in opts.pop('experimental_options').items():
                 options.add_experimental_option(name, value)
     self.selenium_opts['options'] = options
Ejemplo n.º 2
0
    def _browser_options(self, option_instance: webdriver.ChromeOptions,
                         options_config: dict):
        # 添加浏览器配置、扩展、实验性质参数等
        """
        如果options_config内有值就添加配置:
            add_argument
            add_experimental_option
            add_encoded_extension
            add_extension
        :param option_instance:
        :param options_config:
        :return:
        """
        # todo: add_argument 设置浏览器启动语言、隐藏自动化测试提示不生效
        # todo: 可能是zh_CN 下次尝试一下下划线
        options_initial: dict = options_config.pop('options')
        if options_initial:
            argument = options_initial.get("add_argument")
            experimental = options_initial.get("add_experimental_option")
            encoded = options_initial.get("add_encoded_extension")
            extension = options_initial.get("add_extension")

            if argument and len(argument) > 0:
                for arg in argument:
                    option_instance.add_argument(arg)

            if experimental and len(experimental) > 0:
                for exper in experimental:
                    option_instance.add_experimental_option(*exper)

            if encoded and len(encoded) > 0:
                for encod in encoded:
                    option_instance.add_encoded_extension(encod)

            if extension and len(extension) > 0:
                for exten in extension:
                    option_instance.add_extension(exten)
        return option_instance