您的位置:

Chrome驱动详解

一、Chrome驱动下载

Chrome驱动是一个连接Chrome浏览器和Selenium WebDriver的桥梁。我们需要从Chrome官方网站下载与自己浏览器版本对应的Chrome驱动文件,下载地址为https://sites.google.com/a/chromium.org/chromedriver/downloads。

下载链接后,我们需要查看当前Chrome浏览器的版本。可以在Chrome浏览器的地址栏中输入chrome://version/查看。根据浏览器版本选择对应的驱动文件进行下载。

二、Chrome驱动环境变量配置

下载好Chrome驱动后,我们需要将其添加到系统环境变量中,以便在cmd命令窗口中直接调用,而不用每次都手动指定驱动文件的路径。

# Windows系统
setx PATH "%PATH%;C:\chromedriver"  #需替换为实际的Chrome驱动文件路径
# macOS、Linux系统
export PATH="$PATH:/usr/local/bin/chromedriver" #需替换为实际的Chrome驱动文件路径

三、Chrome驱动文件

Chrome驱动文件是一个可执行文件,用于模拟用户使用Chrome浏览器进行操作,例如:打开、关闭、输入等操作。它的作用是与浏览器进行通信,从而使Selenium WebDriver能够控制Chrome浏览器执行指定的测试脚本。

驱动文件的默认名称为chromedriver。在Windows环境下,这个文件可执行文件的后缀名为.exe;而在macOS和Linux中,文件没有后缀名,但它们仍然可以在终端中通过执行命令找到驱动。

四、Chrome驱动程序

Chrome驱动程序是一个与Chrome浏览器进行通信的代理程序,它使得Selenium WebDriver可以与Chrome浏览器进行交互。Chrome驱动程序需要通过参数来启动,这些参数用于指定需要启动的Chrome浏览器的版本、窗口大小等信息。启动驱动程序的代码如下:

from selenium import webdriver

# 初始化Chrome驱动程序
driver = webdriver.Chrome()

五、Chrome驱动版本

要确保Chrome驱动程序与所使用的Chrome浏览器版本兼容,建议在下载Chrome驱动程序时,选择与当前Chrome浏览器版本相同的驱动程序版本。如果使用的是过时的驱动程序版本,可能会导致程序崩溃或异常行为。

可以通过以下代码查看所需的Chrome驱动程序的版本:

from selenium.webdriver.chrome.service import Service
from selenium import webdriver

# 获取Chrome浏览器的版本
options = webdriver.ChromeOptions()
chrome_version = options._get_argument('--version').split(' ')[0]

# 打印所需的驱动程序版本
print("chromedriver version: {}".format(Service(chrome_version).chrome_version()))

六、ChromeOS驱动

ChromeOS驱动是Google Chrome OS操作系统中使用的驱动程序。它可以让自动化测试框架,如Selenium WebDriver,与Chrome OS设备交互。

ChromeOS驱动与Chrome驱动非常相似,但是由于Chrome OS和Chrome浏览器是不同的应用程序,所以它们有不同的驱动程序。下载链接为https://chromedriver.storage.googleapis.com/index.html?path=2.38/。

七、Chrome驱动请求头丢失

在使用Chrome驱动过程中,可能会遇到请求头丢失的问题,导致无法在Chrome浏览器中正常加载网页等问题。这个问题的多见原因是Chrome驱动版本与Chrome浏览器版本不兼容。我们可以尝试更改Chrome驱动版本或Chrome浏览器版本来解决问题。

也可以尝试设置请求头User-Agent来模拟正常的浏览器请求头信息:

from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium import webdriver

# 设置请求头User-Agent
options = Options()
options.add_argument('--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3')

# 初始化Chrome驱动程序,并设置User-Agent请求头
caps = DesiredCapabilities().CHROME
caps["pageLoadStrategy"] = "none"
caps["goog:chromeOptions"] = options.to_capabilities()['goog:chromeOptions']
driver = webdriver.Chrome(desired_capabilities=caps)

八、Chrome驱动器版本与后缀不同

在下载Chrome驱动时,需要注意的是Chrome驱动器版本与后缀名可能不同。例如,在下载Chrome驱动器时,您可能会在Google网站下载到版本为2.30(注意后缀名不同)的文件。

因此,我们建议在下载Chrome驱动器文件时,您应该获取正确的版本数据,并确保使用正确的后缀名。

九、Chrome驱动放在哪

建议将Chrome驱动放在包含Selenium WebDriver代码的Python脚本文件所在的相同文件夹中。这是因为Selenium默认会从PATH环境变量中查找Chrome驱动,将Chrome驱动放在相同文件夹中可以避免找不到驱动文件的问题。

十、Chrome驱动文件版本对应关系选取

Chrome驱动文件每个版本都与Chrome浏览器的版本对应,建议在下载Chrome驱动程序时,选择与您的Chrome浏览器版本相同的驱动程序版本。可以通过以下代码获取您的Chrome浏览器的版本:

from selenium import webdriver

# 初始化Chrome浏览器
driver = webdriver.Chrome()

# 获取Chrome浏览器版本
print(driver.capabilities['version'])

在下载Chrome驱动文件时,请确保使用与您的Chrome浏览器版本对应的驱动程序版本。您可以在这里找到对应版本的Chrome驱动程序https://sites.google.com/a/chromium.org/chromedriver/downloads。