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()
  • 相关阅读:
    自定义View的ToolBar布局报错Error:(2) No resource identifier found for attribute 'context' in package 'c
    在学git之主分支 branch
    获取发布版SHA1
    关于开启线程与UI的操作
    播放音频和视频(VideoView控件)
    通知栏Notification的应用
    Android 真机调式 Installation failed with message 远程主机强迫关闭了一个现有的连接。. It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing. WA
    运行程序申请危险权限
    mysql乐观锁总结和实践
    Nginx配置文件nginx.conf中文详解
  • 原文地址:https://www.cnblogs.com/guanyf/p/13654179.html
Copyright © 2011-2022 走看看