driver = webdriver.Chrome()报错问题及解决

  • Post category:http

当使用selenium库中的webdriver模块进行浏览器自动化测试时,若出现了“driver = webdriver.Chrome()”报错问题,可能是由于以下原因:

  1. chromedriver未安装或路径未添加至系统环境变量;
  2. chromedriver版本与当前chrome浏览器版本不匹配。

以下为解决这一问题的完整攻略:

确认chromedriver安装及路径设置

  1. 打开Chrome浏览器,在地址栏输入“chrome://version”查看当前Chrome浏览器的版本信息。

  2. ChromeDriver官网下载与当前Chrome浏览器对应版本的chromedriver,并解压到一个固定路径。

  3. 将chromedriver所在路径添加至系统环境变量中,或直接指定文件路径。以下为代码示例:

import os
from selenium import webdriver

chrome_driver_path = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"
os.environ["webdriver.chrome.driver"] = chrome_driver_path  # 添加环境变量
driver = webdriver.Chrome(executable_path=chrome_driver_path)  # 指定文件路径

确认chromedriver版本与Chrome浏览器版本匹配

  1. 打开Chrome浏览器,在地址栏输入“chrome://version”查看当前Chrome浏览器的版本信息。

  2. ChromeDriver官网下载与当前Chrome浏览器对应版本的chromedriver,并解压到一个固定路径。

  3. 在python中指定chromedriver的文件路径,并使用对应的版本号,以下为代码示例:

import os
from selenium import webdriver

chrome_version = "89"  # Chrome浏览器版本号
chrome_driver_path = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"
os.environ["webdriver.chrome.driver"] = chrome_driver_path  # 添加环境变量
options = webdriver.ChromeOptions()
options.binary_location = r"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
options.add_argument("--no-sandbox")
options.add_argument("--disable-dev-shm-usage")
options.add_argument(f"--remote-debugging-port=9222")
options.add_argument(f"--user-data-dir=C:\\Users\\Administrator\\AppData\\Local\\Google\\Chrome\\User Data")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option("useAutomationExtension", False)
driver = webdriver.Chrome(
    executable_path=chrome_driver_path,
    chrome_options=options,
    desired_capabilities={
        "browserName": "chrome",
        "version": chrome_version,
        "platform": "WINDOWS",
        "goog:chromeOptions": {"w3c": False}
    }
)  # 指定chromedriver版本号

通过以上两种方式,可以避免chromedriver及版本问题对webdriver的影响。