10.7 Selenium设置相关执行文件路径
10.7.1 设置驱动文件位置
Selenium在启动浏览器时,需要指定浏览器驱动(如chromedriver、geckodriver等)的位置。设置驱动文件位置的方法主要有以下几种:
- 将驱动文件放在系统环境变量中 :
- 将浏览器驱动的完整路径添加到系统的PATH环境变量中。这样,Selenium在启动时就可以自动找到驱动文件,而无需在代码中指定路径。
- 注意:这种方法的好处是代码简洁,但缺点是如果系统中有多个版本的驱动或需要在不同项目中使用不同版本的驱动,可能会带来管理上的不便。
- 在代码中指定驱动文件位置 :
- 如果不将驱动添加到系统环境变量,可以在Selenium的初始化代码中直接指定驱动文件的路径。这通常通过传递一个包含驱动路径的
Service对象或指定executable_path参数来实现(尽管executable_path参数已被弃用,推荐使用Service对象)。 - 示例代码(使用
Service对象):
- 如果不将驱动添加到系统环境变量,可以在Selenium的初始化代码中直接指定驱动文件的路径。这通常通过传递一个包含驱动路径的
python
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
service = Service(executable_path='/path/to/chromedriver')
driver = webdriver.Chrome(service=service)
- 注意:请将
'/path/to/chromedriver'替换为你的chromedriver驱动文件的实际路径。
10.7.2 设置浏览器程序位置
在使用 Selenium 启动浏览器时,如果浏览器可执行文件不在你的系统路径(PATH)中,你需要指定浏览器的路径。
py
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# 指定Chrome浏览器的路径
chrome_binary_path = '/path/to/chrome.exe'
# 创建ChromeOptions对象
options = Options()
options.binary_location = chrome_binary_path
# 创建WebDriver对象时传递ChromeOptions
driver = webdriver.Chrome(options=options)
10.7.3 设置用户目录
Selenium在启动浏览器时,默认会使用一个新的用户数据目录(profile),这意味着它不会加载浏览器中的现有数据(如Cookies、书签等)。如果需要加载特定的用户数据目录,可以通过设置ChromeOptions的user-data-dir参数来实现。
- 在代码中设置用户目录位置 :
- 通过创建
ChromeOptions对象,并使用add_argument方法添加--user-data-dir参数来指定用户数据目录的路径。
- 通过创建
示例代码:
python
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument('--user-data-dir=/path/to/your/profile')
driver = webdriver.Chrome(options=options)
- 注意:请将
'/path/to/your/profile'替换为你想要加载的用户数据目录的实际路径。这个路径应该是一个已经存在的目录,Selenium将在这个目录中查找和保存用户数据。
10.7.4 带插件启动
py
option = webdriver.ChromeOptions()
option.add_extension('D:\谷歌方案\IE_Tab_for_Chrome-10.5.10.1.crx') # 自己下载的crx路径
driver = webdriver.Chrome(chrome_options=option)
driver.get("chrome-extension://hehijbfgiekmjfkfjpbkbammjbdenadd/nhc.htm#url=http://10.190.32.54:7001/default/index.jsp") # 利用浏览器对象打开网页地址