selenium报Unable to locate or obtain driver for {options.capabilities[‘browserName‘]}
但是后面把这个合入到另一个项目的时候就报Unable to locate or obtain driver for {options.capabilities[‘browserName’]}这个错误。后面编辑源文件,print了一下函数里面获取的路径,显示不是在当前目录,也就是base_path = os.getcwd()获取到的不是当前目录。之前写了一个get_dirver函数,单独运行的时候没
·
之前写了一个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
更多推荐
已为社区贡献1条内容
所有评论(0)