目录
四、Selenium直接操控已打开的Chrome浏览器🔥🔥🔥
一、chromedriver概述和新版本下载🔥🔥🔥
概述:
chromedriver.exe是一款与Chrome浏览器结合的驱动工具,支持自动化测试、网络爬虫及其他需要浏览器自动化的场景。它可以与Selenium等流行的自动化测试框架集成,执行自动访问、输入、点击等操作。
应用场景:
- 自动化测试:与测试框架结合,进行网页元素的自动化测试。
- 网络爬虫:实现页面抓取和数据采集。
- Web自动化操作:诸如自动登录、表单提交等常规操作。
版本兼容:
- 理论上chrome和chromedriver大版本匹配即可,即是129.0.xxxx.xx的浏览器,只需下载129版的chromedriver。
对于115以下的版本资源,可以在网上轻松找到;下面分享的是120及以上版本的chromedriver:
PS:下面的是对应chrome Stable稳定版(不是测试版、开发版)
二、chromedriver的使用方式
方法一:添加chromedriver到系统环境变量PATH中
优点:简化代码调用路径。设置后,代码中无需指定chromedriver的路径。
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# 设置Chrome选项
chrome_options = Options()
chrome_options.add_argument('--start-maximized') # 启动最大化
chrome_options.add_argument('--xxxx') # 自己添加xxxx参数
# 创建webdriver实例,使用默认path
driver = webdriver.Chrome(options=chrome_options)
方法二:在代码中直接指定chromedriver路径
使用场景:当chromedriver未添加至系统环境变量中。
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# 设置Chrome选项
chrome_options = Options()
chrome_options.add_argument('--start-maximized') # 启动最大化
chrome_options.add_argument('--xxxx') # 自己添加xxxx参数
# 创建webdriver实例
driver = webdriver.Chrome(options=chrome_options, executable_path='C:/具体路径/chromedriver.exe')
三、Selenium与Chrome参数设置🔥🔥
设置原因:
在Selenium驱动Chrome之前,可以配置浏览器参数以优化体验和调试。例如,进行无头模式(不显示界面)运行以减少资源占用和提高运行效率。
参数设置示例:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# 设置chrome选项
chrome_options = Options()
# 打开chrome前设置启动参数
# 此处只列举部分参数,请自行选择合适的参数
chrome_options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36')
chrome_options.add_argument('--start-maximized') # 启动最大化
chrome_options.add_argument('--disable-infobars') # 禁用浏览器显示正受到自动化测试软件的控制
chrome_options.add_argument("--headless") # 非可视化界面运行(无头模式)
chrome_options.add_argument('--window-size=1920,1080') # 浏览器分辨率(窗口大小),在无头模式时要设置
chrome_options.add_argument('--disable-gpu') # 禁用GPU硬件加速
chrome_options.add_argument('--incognito') # 使用隐私模式(无痕模式)
chrome_options.add_argument('--disable-popup-blocking') # 禁用弹出窗口拦截
chrome_options.add_argument('--ignore-certificate-errors') # 忽略SSL证书错误,通常用于测试
chrome_options.add_argument("--disable-component-update") # 禁止浏览器插件更新
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"]) # 关闭Chrome浏览器受自动控制的提示
chrome_options.add_experimental_option('useAutomationExtension', False) # 不要使用Chrome自动化扩展
chrome_options.add_experimental_option('detach', True) # 设置为 True 时,关闭Selenium会话不会关闭浏览器
chrome_options.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2}) # 取消图片加载
chrome_options.add_experimental_option("excludeSwitches", ["ignore-certificate-errors"]) # 忽略证书错误
# 创建webdriver实例
driver = webdriver.Chrome(options=chrome_options)
四、Selenium直接操控已打开的Chrome浏览器🔥🔥🔥
再顺便分享一个Selenium直接操控已打开的chrome浏览器的方法:
通常,自动化操作会开启新的浏览器会话。网上的教程基本上都是教你怎么使用新的浏览器进程来打开窗口,难道我就不能直接用已经打开的chrome浏览器来继续操作吗?答案是可以的,但需要在两个地方配置一下:
1、设置Chrome启动参数以启用调试模式:
在Chrome的启动快捷方式中添加调试模式并指定端口:--remote-debugging-port=9222
PS:这个步骤做一次即可,以后都可以使用该快捷方式打开已配置的Chrome
2、使用Selenium连接已开启的浏览器
配置Selenium代码以连接到调试端口。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222") # 使用已经打开的浏览器
wd = webdriver.Chrome(options=chrome_options)
# 打开浏览器后,进行其它操作
注意事项(亲测):
配置连接已打开的浏览器时,不要添加其他配置信息如add_argument、add_experimental_option,因为您已经是在操控一个已启动并在运行的环境。
如果您觉得本文还不错,记得一键 点赞 + 收藏 + 关注,以后不迷路哦~~