zoukankan      html  css  js  c++  java
  • python browser engine封装

    # -*- coding:utf-8 -*-
    
    import configparser
    from selenium import webdriver
    from webdriver_manager.opera import OperaDriverManager
    from webdriver_manager.chrome import ChromeDriverManager
    from webdriver_manager.firefox import GeckoDriverManager
    from webdriver_manager.microsoft import IEDriverManager
    from webdriver_manager.microsoft import EdgeChromiumDriverManager
    from Common.LoggerBase import Logger
    from pathlib import Path
    
    import os
    # os.environ['WDM_LOG_LEVEL'] = '0'
    # #If you face error related to github credentials, you need to place github token: (*)
    os.system("export GH_TOKEN = 'asdasdasdasd'")
    
    Logger = Logger()
    
    class BrowserEngine(object):
    
        # chrome_driver_path = Path(Path.cwd()) / 'tools/chromedriver.exe'
        # ie_driver_path = Path.joinpath(Path.cwd(), 'tools/IEDriverServer.exe')
        # firefox_driver_path = Path(Path.cwd()) / 'tools/firefox.exe'
    
        def __init__(self, driver=None):
            self.driver = driver
    
        # read the browser type from config.ini file, return the driver
        # def open_browser(self, driver):
        #     config = configparser.ConfigParser()
        #     file_path = Path.joinpath(Path.cwd(), 'config/config.ini')
        #     #config.read(file_path)
        #     config.read(file_path, encoding='UTF-8') #如果代码有中文注释,用这个,不然报解码错误
        #
        #     browser = config.get("browserType", "browserName")
        #     Logger.info("You had select %s browser." % browser)
        #     url = config.get("testServer", "URL")
        #     Logger.info("The test server url is: %s" % url)
        #
        #     if browser == "Firefox":
        #         driver = webdriver.Firefox(str(self.firefox_driver_path))
        #         Logger.info("Starting firefox browser.")
        #     elif browser == "Chrome":
        #         driver = webdriver.Chrome(str(self.chrome_driver_path))
        #         Logger.info("Starting Chrome browser.")
        #     elif browser == "IE":
        #         driver = webdriver.Ie(str(self.ie_driver_path))
        #         Logger.info("Starting IE browser.")
        #
        #     driver.get(url)
        #     Logger.info("Open url: %s" % url)
        #     driver.maximize_window()
        #     Logger.info("Maximize the current window.")
        #     driver.implicitly_wait(10)
        #     Logger.info("Set implicitly wait 10 seconds.")
        #     return driver
    
    
        def open_browser(self, driver=None):
            config = configparser.ConfigParser()
            file_path = Path.joinpath(Path.cwd().parent, 'config/config.ini')
            # 如果代码有中文注释,用这个,不然报解码错误  encoding='UTF-8'
            config.read(file_path, encoding='UTF-8')
            browser = config.get("browserType", "browserName")
            Logger.info("You had select %s browser." % browser)
    
            url = config.get("testServer", "URL")
            Logger.info("The test server url is: %s" % url)
    
            if browser == "Firefox":
                #Driver cache by default is valid for 1 day. You are able to change this value using constructor parameter
                driver = webdriver.Firefox(executable_path=GeckoDriverManager(log_level=0).install())
                Logger.info("Starting firefox browser.")
    
            elif browser == "Chrome":
                # driver = webdriver.Chrome(ChromeDriverManager(log_level=0).install())
                driver = webdriver.Chrome(ChromeDriverManager(cache_valid_range=2, log_level=0).install())
                Logger.info("Starting Chrome browser.")
    
            elif browser == "Ie":
                driver = webdriver.Ie(IEDriverManager(log_level=0).install())
                Logger.info("Starting IE browser.")
    
            elif browser == "Edge":
                driver = webdriver.Edge(EdgeChromiumDriverManager(log_level=0).install())
                Logger.info("Starting Edge browser.")
    
            elif browser == "Opera":
                driver = webdriver.Opera(executable_path=OperaDriverManager(log_level=0).install())
                Logger.info('Starting Opera browser.')
    
            # elif browser == "Opera":
            #     '''
            #     If the Opera browser is installed in a location other
            #     than C:/Program Files or C:/Program Files (x86) on windows
            #     and /usr/bin/opera for all unix variants and mac, then use the below code
            #     '''
            #     options = webdriver.ChromeOptions()
            #     options.add_argument('allow-elevated-browser')
            #     options.binary_location = "C:\Users\USERNAME\FOLDERLOCATION\Opera\VERSION\opera.exe"
            #     driver = webdriver.Opera(executable_path=OperaDriverManager(log_level=0).install(), options=options)
    
            driver.get(url)
            Logger.info("Open url: %s" % url)
            driver.maximize_window()
            Logger.info("Maximize the current window.")
            driver.implicitly_wait(10)
            Logger.info("Set implicitly wait 10 seconds.")
            return driver
    
        def quit_browser(self):
            Logger.info("Now, Close and quit the browser.")
            self.driver.quit()
  • 相关阅读:
    算法与数据结构实验题 5.2 Missile
    算法与数据结构实验题 2.3 击鼓传花
    算法与数据结构实验题 2.4 排队
    Linux 添加自定义命令
    转 32位linux内核2.6.38.2添加系统调用,编写类似"ps"命令模块显示进程信息
    Linux内核模块程序加载方法
    Linux下sched.h文件分析
    Kali 爆破和非爆破无线路由账号和密码+让别人无线掉线
    Kali基于路由器的ARP欺骗转发机制
    Kali nmap教程用法简介
  • 原文地址:https://www.cnblogs.com/guanyf/p/13654179.html
Copyright © 2011-2022 走看看