当使用selenium库中的webdriver模块进行浏览器自动化测试时,若出现了“driver = webdriver.Chrome()”报错问题,可能是由于以下原因:
- chromedriver未安装或路径未添加至系统环境变量;
- chromedriver版本与当前chrome浏览器版本不匹配。
以下为解决这一问题的完整攻略:
确认chromedriver安装及路径设置
-
打开Chrome浏览器,在地址栏输入“chrome://version”查看当前Chrome浏览器的版本信息。
-
从ChromeDriver官网下载与当前Chrome浏览器对应版本的chromedriver,并解压到一个固定路径。
-
将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浏览器版本匹配
-
打开Chrome浏览器,在地址栏输入“chrome://version”查看当前Chrome浏览器的版本信息。
-
从ChromeDriver官网下载与当前Chrome浏览器对应版本的chromedriver,并解压到一个固定路径。
-
在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的影响。