Beispiel #1
0
    def __init_browser(self):
        """
        初始化selenium浏览器
        :return:
        """

        if BROWSER_TYPE == 0:
            # 使用 chromedriver
            prefs = {"profile.managed_default_content_settings.images": 1}
            options = Options()
            #options.add_argument("--headless")
            options.add_argument('--disable-gpu')
            options.add_argument('--ignore-ssl-errors=true')
            options.add_argument('--proxy-server=' + PROXY_ADDRESS)
            options.add_argument('--log-level=3')
            options.add_argument('--no-sandbox')
            options.add_argument('disable-infobars')
            options.add_experimental_option("prefs", prefs)
            options.add_experimental_option('excludeSwitches',
                                            ['enable-automation'])
            self.browser = webdriver.Chrome(executable_path=CHROME_DRIVER,
                                            options=options)
            self.browser.implicitly_wait(3)
        else:
            options = FireFoxOptions()
            # linux 去除ui界面
            # options.add_argument('-headless')
            # 使用 geckodriver
            profile = webdriver.FirefoxProfile()

            profile.set_preference("browser.privatebrowsing.autostart", False)

            # http
            profile.set_preference('network.proxy.http', PROXY_HOST)
            profile.set_preference('network.proxy.http_port', PROXY_PORT)

            # 启用 https 代理
            profile.set_preference('network.proxy.type', 1)
            profile.set_preference('network.proxy.ssl', PROXY_HOST)
            profile.set_preference('network.proxy.ssl_port', PROXY_PORT)
            profile.update_preferences()
            # 添加下面两个参数防止 SSL 报错,参考自:https://www.guru99.com/ssl-certificate-error-handling-selenium.html#2

            profile.accept_untrusted_certs = True
            profile.assume_untrusted_cert_issuer = False

            self.browser = webdriver.Firefox(
                firefox_profile=profile,
                # executable_path="/usr/local/bin/geckodriver_mac", # os.getcwd() + "/geckodriver_linux64"
                # executable_path="/usr/local/bin/geckodriver_linux64",
                executable_path=
                "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37\\geckodriver.exe",
                service_log_path=os.getcwd() + "\\geckodriver.log",
                # service_log_path=os.getcwd() + "/geckodriver.log",
                firefox_options=options)

        self.browser.set_page_load_timeout(3)
        self.browser.maximize_window()
        #self.browser.get(TB_LOGIN_URL)
        return self.browser
Beispiel #2
0
    def __init__(self,
                 driver_path: str = None,
                 waiter_timeout: int = 3,
                 options: List[str] = None):
        """Base class to WebScrapper with selenium

        :param driver_path: web drive file path
            :type: str
            :tip: if driver_path is none, FireFox web drive will be used
        :param waiter_timeout: general wait timeout
            :type: int
        :param options: driver config
             :type: List[str]
        """

        # selecting driver
        if not driver_path:
            driver = webdriver.Firefox
            driver_options = FireFoxOptions()
        else:
            driver = webdriver.Chrome
            driver_options = ChromeOptions()

        # add config
        if options:
            for option in options:
                driver_options.add_argument(option)

        self.driver = driver(driver_path, options=driver_options)
        self.waiter = WebDriverWait(self.driver, waiter_timeout)
Beispiel #3
0
 def _firefox_option():
     firefox_options = FireFoxOptions()
     # firefox_options.add_argument('--headless')
     # firefox_options.add_argument('--disable-gpu')
     firefox_options.add_argument('--window-size=1920,1080')
     firefox_options.add_argument('--start-maximized')
     return firefox_options
Beispiel #4
0
    def setUp(self):

        options = FireFoxOptions()
        options.add_argument('-headless')
        self.driver = webdriver.Firefox(firefox_options=options,
                                        executable_path='geckodriver')

        TestFrontend.setUp(self)
Beispiel #5
0
 def testFirefoxAuthFlow(self):
     """
     Performs a Firefox browser login and logout
     """
     options = FireFoxOptions()
     options.headless = True
     driver = webdriver.Firefox(
         options=options)  # requires geckodriver defined in $PATH
     self.browser_login(driver)
Beispiel #6
0
 def __init__(self):
     print("######### STARTING Mza7aStreamBooster #########")
     try:
         self.firefox_options = FireFoxOptions()
         self.firefox_options.add_argument("--headless")
         print("Session started successfully.")
     except Exception as ex:
         print("Unable to initialize Mza7aStreamBooster.")
         print(ex)
Beispiel #7
0
    def __enter__(self):
        driver_options = FireFoxOptions()
        driver_options.add_argument('--headless')

        profile = webdriver.FirefoxProfile()
        profile.set_preference("permissions.default.image", 2)
        profile.set_preference("browser.cache.disk.enable", 2)
        profile.set_preference("browser.cache.memory.enable", 2)
        profile.set_preference("browser.cache.offline.enable", 2)
        profile.set_preference("network.http.use-cache", 2)

        self.driver = webdriver.Firefox(profile,
                                        executable_path=r"geckodriver.exe",
                                        options=driver_options)
        self.ImageWorker = ImageWorker()

        return self
Beispiel #8
0
)
parser.add_argument('--config_file',
                    action='store',
                    default='SHM_config_default',
                    help='Configuration options file (default= %(default)s)')
args = parser.parse_args()
print("SmartHubMonitor: Using Selenium engine \'" + args.engine +
      "\' and config file \'" + args.config_file + "\'\n")

#Import user configuration file
SHM_Config = importlib.import_module(args.config_file)

#Set up Webdriver
if args.engine == 'firefox':
    from selenium.webdriver.firefox.options import Options as FireFoxOptions
    firefox_options = FireFoxOptions()
    firefox_options.headless = True
    driver = webdriver.Firefox(options=firefox_options,
                               executable_path=SHM_Config.geckodriverpath)

if args.engine == 'chromium':
    from selenium.webdriver.chrome.options import Options as ChromiumOptions
    chrome_options = ChromiumOptions()
    chrome_options.add_argument("--headless")
    chrome_options.add_argument("--window-size=1920,1080")
    chrome_options.add_argument('--start-maximized')
    chrome_options.add_argument('--disable-gpu')
    chrome_options.add_argument('--no-sandbox')
    chrome_options.add_argument("--disable-extensions")
    chrome_options.add_argument('disable-infobars')
    driver = webdriver.Chrome(options=chrome_options)