From b756e85c54b9e5dfab201792ebcb44328ad2b86f Mon Sep 17 00:00:00 2001 From: g1879 Date: Thu, 19 Nov 2020 23:59:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0show=5Fsettings()=EF=BC=9B=20?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=87=AA=E5=8A=A8=E4=B8=8B=E8=BD=BDdriver?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=8C=E6=9C=AA=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DrissionPage/easy_set.py | 60 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/DrissionPage/easy_set.py b/DrissionPage/easy_set.py index 2316d4d..c9d57c7 100644 --- a/DrissionPage/easy_set.py +++ b/DrissionPage/easy_set.py @@ -4,11 +4,28 @@ @Contact : g1879@qq.com @File : driver_page.py """ +from re import search as RE_SEARCH +from os import popen +from pathlib import Path +from pprint import pprint from typing import Union from selenium import webdriver from DrissionPage.config import OptionsManager, DriverOptions +from DrissionPage.session_page import SessionPage +from DrissionPage.drission import Drission + + +def show_settings() -> None: + """打印ini文件内容""" + om = OptionsManager() + print('paths:') + pprint(om.get_option('paths')) + print('\nchrome options:') + pprint(om.get_option('chrome_options')) + print('\nsession options:') + pprint(om.get_option('session_options')) def set_paths(driver_path: str = None, @@ -157,3 +174,46 @@ def check_driver_version(driver_path: str = None, chrome_path: str = None) -> bo ''' print(info) return False + + +def _get_chrome_path() -> str: + paths = popen('set path').read().lower() + r = RE_SEARCH(r'[^;]*chrome[^;]*', paths) + + if r: + path = Path(r.group(0)) if 'chrome.exe' in r.group(0) else Path(r.group(0)) / 'chrome.exe' + if path.exists(): + return str(path) + + paths = paths.split(';') + + for path in paths: + path = Path(path) / 'chrome.exe' + if path.exists(): + return str(path) + + +def _get_chrome_version(path: str) -> Union[str, None]: + path = path.replace('\\', '\\\\') + + try: + version = popen(f'wmic datafile where "name=\'{path}\'" get version').read().lower().split('\n')[2] + return version + except: + return None + + +def _download_driver(version: str) -> bool: + page = SessionPage(Drission().session) + page.get('http://npm.taobao.org/mirrors/chromedriver') + + if version in page.html: + url = f'https://cdn.npm.taobao.org/dist/chromedriver/{version}/chromedriver_win32.zip' + result = page.download(url, '.', show_msg=True) + + if result[0]: + return result[1] + else: + pass + + return True