def __init__( self, email: str, password: str, *, headless: bool = True, timeout: int = 10, ): logger.debug("Scraper init") driver_manager = ChromeDriverManager() driver_manager.download_and_install() logger.info("Browser and driver are installed") self.email = email self.password = password self.timeout = timeout self.options = webdriver.ChromeOptions() self.options.headless = headless self.driver = webdriver.Chrome(options=self.options) # { Lang: { kyu: { title: code } } } self.solutions_data: Dict[str, Dict[str, Dict[str, str]]] = {}
def browser(request): browser_type = request.config.getoption('--browser') if browser_type == 'chrome': cdm = ChromeDriverManager() cdm.download_and_install() option = ChromeOptions() option.add_argument('--kiosk') # option.add_argument('--disable-popup-blocking') option.add_argument('--ignore-certificate-errors') # option.headless = True browser = webdriver.Chrome(options=option) # browser.implicitly_wait(5) request.addfinalizer(browser.quit) return browser if browser_type == 'firefox': gdm = GeckoDriverManager() gdm.download_and_install() option = FirefoxOptions() option.add_argument('--kiosk') # option.headless = True browser = webdriver.Firefox(options=option) browser.implicitly_wait(5) request.addfinalizer(browser.quit) return browser else: raise Exception(f'{request.param} is not supported!')
def openChrome(): chrome_options = webdriver.ChromeOptions() prefs = {"profile.default_content_setting_values.notifications": 2} chrome_options.add_experimental_option("prefs", prefs) chrome_options.add_argument("--headless") try: browser = webdriver.Chrome(chrome_options=chrome_options) return browser except WebDriverException: ChromeDriverManager.download_and_install() browser = webdriver.Chrome(chrome_options=chrome_options) return browser
def main(): if len(sys.argv) == 1: here = os.path.abspath(os.path.dirname(__file__)) about = {} with open(os.path.join(here, '__version__.py')) as f: exec(f.read(), about) print("Selethon v%s" % about['__version__']) elif str(sys.argv[1]) == "install": try: if str(sys.argv[2]) == "chrome": from webdrivermanager import ChromeDriverManager cdd = ChromeDriverManager(link_path='AUTO') cdd.download_and_install() except IndexError: print("Please provide webdriver")
def __init__(self, persister, logger): Analysis.__init__(self, persister, logger) HOME_DIR = os.getenv("HOME") or os.getenv("USERPROFILE") WEBDRIVER = os.path.join(HOME_DIR, ".wapiti", "generated_report") if not os.path.isdir(WEBDRIVER): os.makedirs(WEBDRIVER) chr = ChromeDriverManager(download_root=WEBDRIVER, link_path=WEBDRIVER) self.driver_path = chr.download_and_install(show_progress_bar=False)[1]
def main(): """Check for uploaded pdf files for 6DOS accounts listed by the csv provided by the user.""" # Get filename and test if it is valid root = Tk() root.withdraw() fileName = askopenfilename() root.update() try: testFile = open(fileName, "r") except FileNotFoundError: rootLogger.error(fileName + " does not exist!") quit() # Save start time startTime = time() rootLogger.info("Starting Browser...") # Run Chrome headless chrome_options = Options() chrome_options.add_argument("--headless") chrome_options.add_argument("--window-size=1920x1080") chrome_options.add_argument("log-level=3") # Start browser driver try: browser = webdriver.Chrome(chrome_options=chrome_options, executable_path='./chromedriver.exe') except WebDriverException: gdd = ChromeDriverManager(link_path='.') gdd.download_and_install() browser = webdriver.Chrome() # Login rootLogger.info("Logging in...") login(browser) # Check pages rootLogger.info("Checking pages...") check_pages(browser, testFile, startTime) elapsedTime = time() - startTime strftime("Total Time: %M minutes %S seconds", gmtime(elapsedTime))
def manage_webdriver(): """ Метод для загрузки, установки и добавления в PYTHONPATH вебдрайвера для работы с selenium """ cdm = ChromeDriverManager() with no_ssl_verification(): _, symlink = cdm.download_and_install() sys.path.insert(0, symlink)
def __init__(self, iterations): cdm = ChromeDriverManager() chromedriver_path = cdm.download_and_install() print(chromedriver_path) options = webdriver.ChromeOptions() options.add_argument('headless') # убираем графический интерфейс self.driver = webdriver.Chrome( executable_path='venv/Scripts/chromedriver.exe', chrome_options=options) # используем браузер Chrome self.navigate(iterations) # функция вызывается при создании бота self.close()
def browser(request): browser = request.config.getoption() if browser == 'Firefox': gdm = GeckoDriverManager() gdm.download_and_install() option = FirefoxOptions() # option.add_argument('--kiosk') option.headless = True wd = webdriver.Firefox(options=option) request.addfinalizer(wd.quit) return wd if browser == 'Chrome': cdm = ChromeDriverManager() cdm.download_and_install() option = ChromeOptions() # option.add_argument('--kiosk') # option.add_argument('--ignore-certificate-errors') option.headless = True wd = webdriver.Chrome(options=option) request.addfinalizer(wd.quit) return wd else: raise Exception(f'{request.param} is not supported!')
def pilot_setup(self, options=None, waitsec=10): """ Called from pilot(). Execute web browser, and set up for auto-pilot. 1. Setting up web browser: OPTIONS, EXTENTIONS, ... 1. Execute web browser. 1. Fetch some information(s) with web browser. """ logger = self.logger msg = '' # Ad-hoc workaround for Google Chrome v.93 or later. ### See: https://stackoverflow.com/questions/69034343/chromedriver-session-timeouts-in-version-93 options.add_argument("--disable-gpu") try: ld_webdriver = self.last_done.get('WebDriver', {}) logger.debug(f" -- last_done.webdriver: {ld_webdriver}") previous = ld_webdriver.get('Chrome', ['', datetime.datetime.min]) logger.debug(f" -- get_download_path() == Re-use driver.") driver_path = previous[0] logger.debug(f" driver_path: {driver_path}") self.driver = webdriver.Chrome(driver_path, options=options) except (SessionNotCreatedException, OSError) as e: """ SessionNotCreatedException: Chromeのバージョンアップを想定しWebDriverのバージョンアップを試みる。 OSError: ChromeDriver 未取得の可能性あるため取得を試みる。 """ logger.warn( f' !! {type(e)}: {e.args if hasattr(e,"args") else e}') msg += f"Maybe unmatch chromewebdriver, And try to update chrome driver... <{sys._getframe().f_lineno}@{__file__}>" logger.warn(f' !! {msg}') try: cdm = ChromeDriverManager() logger.debug( f" -- download_and_install() == Try to update driver") driver_path = cdm.download_and_install()[0] ld_webdriver['Chrome'] = [driver_path, datetime.datetime.now()] self.last_done['WebDriver'] = ld_webdriver logger.debug(f" driver_path: {driver_path}") self.driver = webdriver.Chrome(driver_path, options=options) except Exception as e: # msg += f" -- {type(e)}: {e.msg}\n" logger.critical( f' !! Cannot update ChromeDriver. {self.exception_message(e)}' ) msg += f"\n!! Cannot update ChromeDriver. <{sys._getframe().f_lineno}@{__file__}>. Exit." msg += "\n" except WebDriverException as e: msg += f" -- {self.exception_message(e)}\n" msg += f"!! Cannot instantiate WebDriver<{sys._getframe().f_lineno}@{__file__}>. Exit.\n" msg += "\n" except Exception as e: msg += f" -- {self.exception_message(e)}\n" msg += "\n" finally: if self.driver is None: logger.critical(msg) raise SessionNotCreatedException(msg) self.driver.implicitly_wait(waitsec) logger.debug(f' -- {self.driver}') self.wait = WebDriverWait(self.driver, waitsec) return (self.driver, self.wait)
from selenium import webdriver from selenium.common.exceptions import NoSuchElementException from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.keys import Keys from webdrivermanager import ChromeDriverManager from Product import Product import json, time driver = ChromeDriverManager() driver.download_and_install() # User Input search_term = input("Enter the name of the product:") # Global Variables biggest_discount = 0.0 lowest_price = 0.0 cheapest_product = Product("", "", "", "") best_deal_product = Product("", "", "", "") search_terms = search_term.split(" ") products = [] # Initialize ChromeDriver options = Options() webdriver.ChromeOptions() options.add_argument('--headless') options.add_argument('--ignore-certificate-errors') options.add_argument('--incognito') chrome_path = r"/Users/franktran/Library/Application Support/WebDriverManager/bin/chromedriver" driver = webdriver.Chrome(executable_path=chrome_path, options=options)
def launch_browser(self): chrome = ChromeDriverManager() chrome.download_and_install() self.driver = webdriver.Chrome() self.driver.get(EL.Url) self.driver.implicitly_wait(2)