gpt4 book ai didi

python - 如何让我的 python 脚本找到 chromedriver 文件,无论它在哪里使用

转载 作者:行者123 更新时间:2023-12-01 00:38:08 24 4
gpt4 key购买 nike

我正在使用 python selenium 构建一个 Web 测试应用程序,并希望那些不太懂技术的人也能够使用它。但是,此应用程序需要 chromedriver.exe 文件才能获取网页。那么有什么方法我可以随时访问该文件,无论它下载并保存在哪里。或者也许有某种方法可以让用户输入一次位置,然后保存它,这样用户就不需要在每次启动应用程序时输入位置?

最佳答案

脚本绝对无法找到 chromedriver,“无论它在哪里下载并保存”,除非它位于系统路径上。

我很快为 python3 编写了这个代码,它检查 Windows path 上是否存在 chromedriver,如果不存在,它会从 URL 下载它。

import requests, zipfile, io, os
curr_dir = os.path.dirname(os.path.abspath(__file__))

def is_exe(fpath):
return os.path.isfile(fpath) and os.access(fpath, os.X_OK)

def chromedriver_exist():
if is_exe (curr_dir + "\chromedriver.exe"):
return curr_dir + "\chromedriver.exe"
for path in os.environ["PATH"].split(os.pathsep):
exe_file = os.path.join(path, "chromedriver.exe")
if is_exe(exe_file):
print("chromedriver exist and is executable", exe_file)
return exe_file

chromedriver = chromedriver_exist()
if chromedriver:
print(chromedriver)
else:
url = "https://chromedriver.storage.googleapis.com/72.0.3626.69/chromedriver_win32.zip"
r = requests.get(url)
z = zipfile.ZipFile(io.BytesIO(r.content))
z.extractall()
chromedriver = curr_dir + "\chromedriver.exe"
print(chromedriver)
<小时/>

V2

import requests, zipfile, io, os, subprocess
curr_dir = os.path.dirname(os.path.abspath(__file__))
chromedriver = "chromedriver.exe"
out = subprocess.getoutput(f"{chromedriver} -v")
if "ChromeDriver" in out:
print(f"{out} \nChromeDriver exists in path and is executable" )
else:
url = "https://chromedriver.storage.googleapis.com/72.0.3626.69/chromedriver_win32.zip"
try:
r = requests.get(url)
z = zipfile.ZipFile(io.BytesIO(r.content))
z.extractall()
chromedriver = f"{curr_dir}\chromedriver.exe"
except Exception as e:
print(f"Cannot download chromedriver\n {e}")

关于python - 如何让我的 python 脚本找到 chromedriver 文件,无论它在哪里使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57583931/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com