From 2847bb7d249a226cf7760fdfb43ce21276fc45b0 Mon Sep 17 00:00:00 2001 From: g1879 Date: Fri, 17 Dec 2021 14:33:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=B8=8B=E8=BD=BD=E5=8C=B9?= =?UTF-8?q?=E9=85=8Ddriver=E9=80=BB=E8=BE=91=EF=BC=8C=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E6=89=BE=E5=88=B0=E5=8C=B9=E9=85=8D=E5=88=99=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E5=A4=A7=E7=89=88=E6=9C=AC=E6=9C=80=E5=90=8E=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DrissionPage/easy_set.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/DrissionPage/easy_set.py b/DrissionPage/easy_set.py index a74737f..070ab50 100644 --- a/DrissionPage/easy_set.py +++ b/DrissionPage/easy_set.py @@ -346,18 +346,24 @@ def _download_driver(version: str, save_path: str = None, show_msg: bool = True) except ValueError: return None - for i in page.eles('xpath://pre/a'): - remote_main = i.text.split('.')[0] + remote_versions = page.eles(f'xpath://pre/a[starts-with(text(),"{loc_main}.")]') + remote_versions = [v for v in remote_versions if v.text and v.text[-1] == '/'] + remote_versions.sort(key=lambda x: x.text) + for i in remote_versions: try: remote_num = int(sub(r'[./]', '', i.text)) except ValueError: continue - if remote_main == loc_main and remote_num >= loc_num: + if remote_num >= loc_num: remote_ver = i.text break + # 没有匹配到,则取大版本的最后一个号 + if remote_versions and not remote_ver: + remote_ver = remote_versions[-1].text + if remote_ver: url = f'https://cdn.npm.taobao.org/dist/chromedriver/{remote_ver}chromedriver_win32.zip' save_path = save_path or Path(__file__).parent