赞
踩
之前写了一个get_dirver函数,单独运行的时候没问题。后面导入调用的时候也是正常的。
但是后面把这个合入到另一个项目的时候就报Unable to locate or obtain driver for {options.capabilities[‘browserName’]}这个错误。
后面编辑源文件,print了一下函数里面获取的路径,显示不是在当前目录,也就是base_path = os.getcwd()获取到的不是当前目录。
后来我查了一下,获取当前目录不能用base_path = os.getcwd(),而要使用
base_path = os.path.dirname(os.path.abspath(__file__))
先获取本文件的绝对目录,然后再截取当前目录
from selenium import webdriver from selenium.webdriver.chrome.service import Service # base_path = os.path.dirname(os.path.abspath(__file__)) base_path = os.getcwd() def get_driver(url): # 关闭保存密码提示框,关闭不安全提示 prefs = {"":""} # 是否启用凭据服务 prefs["credentials_enable_service"] = False # 是否启用密码管理器配置文件 prefs["profile.password_manager_enabled"] = False # 启用安全浏览器模式 #prefs["safebrowsing.enabled"] = True prefs["safebrowsing.enabled"] = False # 设置浏览器默认下载目录 # prefs["download.default_ directory"] = r"c:\download" prefs["download.default_ directory"] = base_path options = webdriver.ChromeOptions() # 设置chrome.exe和chromedriver.exe的目录 options._binary_location = base_path + r'\chrome\112.0.5615.138\chrome\Chrome-bin\chrome.exe' driver_path = base_path + r"\chrome\112.0.5615.138\chrome\Chrome-bin\chromedriver.exe" # 执行完后不自动关闭浏览器 options.add_experimental_option('detach',True) # 关闭下载保护 options.add_experimental_option("--safebrowsing-disable-download-protection") options.add_experimental_option("--safebrowsing-disable-extension-blacklist") # 关闭保存密码提示框, options.add_experimental_option('prefs', prefs) # 设置浏览器分辨率 options.add_argument("--window-size=1920,1080") # 浏览器窗口最大化 options.add_argument('--start-maximized') # 不显示浏览器 options.add_argument("--headless=new") # 禁用GPU options.add_argument('--disable-gpu') options.add_argument('--disable-dev-shm-usage') options.add_argument('--no-sandbox')# linux only # 忽略证书错误 options.add_argument('--ignore-certificate-errors') # 如何去掉提示“正受到自动测试软件控制” options.add_experimental_option("excludeSwitches", ['enable-automation']) # 不显示图片 options.add_argument('blink-settings-imagesEnabled=false') service = Service(executable_path=driver_path) driver = webdriver.Chrome(service=service,options=options) driver.get(url) return driver
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。