selenium启动谷歌浏览器的参数设置

Selenium控制chrome权限弹窗处理

  • 通知、位置、摄像头和麦克风权限控制的配置
  • 其他参数
  • 其他配置方式
  • 使用同一个浏览器进行多次操作
  • 参考来源

通知、位置、摄像头和麦克风权限控制的配置

	options = webdriver.ChromeOptions()
	options.add_experimental_option("prefs", { \
	    "profile.default_content_setting_values.media_stream_mic": 1,     # 麦克风 1:allow, 2:block 
	    "profile.default_content_setting_values.media_stream_camera": 1,  # 摄像头 1:allow, 2:block 
	    "profile.default_content_setting_values.geolocation": 1,          # 地理位置 1:allow, 2:block 
	    "profile.default_content_setting_values.notifications": 1,         # 通知 1:allow, 2:block 
	    'download.default_directory': download_path  # 下载路径
	  })
	driver = webdriver.Chrome(chrome_options=options)

其他参数

options.add_argument(‘headless’) # 无头模式
options.add_argument(‘window-size={}x{}’.format(width, height)) # 直接配置大小和set_window_size一样
options.add_argument(‘disable-gpu’) # 禁用GPU加速
options.add_argument(‘proxy-server={}’.format(self.proxy_server)) # 配置代理
options.add_argument(’–no-sandbox’) # 沙盒模式运行
options.add_argument(’–disable-setuid-sandbox’) # 禁用沙盒
options.add_argument(’–disable-dev-shm-usage’) # 大量渲染时候写入/tmp而非/dev/shm
options.add_argument(’–user-data-dir={profile_path}’.format(profile_path)) # 用户数据存入指定文件
options.add_argument(‘no-default-browser-check) # 不做浏览器默认检查
options.add_argument(“–disable-popup-blocking”) # 允许弹窗
options.add_argument(“–disable-extensions”) # 禁用扩展
options.add_argument(“–ignore-certificate-errors”) # 忽略不信任证书
options.add_argument(“–no-first-run”) # 初始化时为空白页面
options.add_argument(’–start-maximized’) # 最大化启动
options.add_argument(’–disable-notifications’) # 禁用通知警告
options.add_argument(’–enable-automation’) # 通知(通知用户其浏览器正由自动化测试控制)
options.add_argument(’–disable-xss-auditor’) # 禁止xss防护
options.add_argument(’–disable-web-security’) # 关闭安全策略
options.add_argument(’–allow-running-insecure-content’) # 允许运行不安全的内容
options.add_argument(’–disable-webgl’) # 禁用webgl
options.add_argument(’–homedir={}’) # 指定主目录存放位置
options.add_argument(’–disk-cache-dir={临时文件目录}’) # 指定临时文件目录
options.add_argument(‘disable-cache’) # 禁用缓存
options.add_argument(‘excludeSwitches’, [‘enable-automation’]) # 开发者模式
options.add_argument(’–disable-infobars’) # 禁止策略化
options.add_argument(‘–incognito’) # 隐身模式(无痕模式)
options.add_argument(‘–disable-javascript’) # 禁用javascript
options.add_argument(‘–hide-scrollbars’) # 隐藏滚动条, 应对一些特殊页面
options.add_argument(‘blink-settings=imagesEnabled=false’) # 不加载图片, 提升速度
options.binary_location = r"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" # 手动指定使用的浏览器位置
options.add_argument(‘lang=en_US’) # 设置语言
prefs = {“”:“”}

prefs[“credentials_enable_service”] = False

prefs[“profile.password_manager_enabled”] = False

chrome_option_set.add_experimental_option(“prefs”, prefs) # 屏蔽’保存密码’提示框
更多flags参数请参考:[https://blog.alanwei.com/blog/2021/03/15/chrome-flags/]

其他配置方式

可以自己复制谷歌浏览器的配置文件夹修改,并在启动时指定使用的文件夹

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = webdriver.ChromeOptions()
options.add_argument("user-data-dir=C:\\Users\\username\\AppData\\Local\\Google\\Chrome\\User Data\\Default")
driver = webdriver.Chrome(chrome_options=options)
driver.get("https://ceshiren.com")

使用同一个浏览器进行多次操作

首先用cmd从谷歌浏览器目录以指定端口启动浏览器:
chrome.exe --remote-debugging-port=12306
再在脚本中使用参数来获取连接,这样就可以一直使用命令行打开的谷歌浏览器进行操作

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_experimental_option("debuggerAddress", "127.0.0.1:12306")
driver = webdriver.Chrome(options=options)

上面的参数很多不是经常用到或者在selenium操作过程中使用,所以这里并没有验证,供大家参考。
如果大家有其他的参数设置欢迎评论补充

参考来源

1:https://ceshiren.com/t/topic/14738/2
2:https://blog.csdn.net/weixin_44929594/article/details/122513925
3:https://blog.csdn.net/aheress/article/details/113861199
4:https://blog.csdn.net/Qwertyuiop2016/article/details/103488817/

你可能感兴趣的:(python,selenium,chrome)