您的当前位置:首页正文

自动化进阶之路,selenium中webdriver的ChromeOptions参数说明

2024-11-01 来源:个人技术集锦

可使用ChromeOptions()实现谷歌浏览器一系列功能:

from selenium.webdriver.chrome.options import Options
option = Options()
#在打开浏览器之前,去掉自动化标识
option.add_experimental_option('excludeSwitches', ['enable-automation'])

常见不需要的浏览器功能:
–disable-client-side-phishing-detection:禁用客户端网络钓鱼检测
–disable-component-extensions-with-background-pages:禁用一些不受影响的内置扩展–disable-extensions
–disable-default-apps:禁用默认应用程序的安装
–disable-extensions:禁用所有 chrome 扩展
–disable-features=InterestFeedContentSuggestions:禁用 NTP 上的发现源
–disable-features=Translate:禁用 Chrome 翻译,包括手动选项和检测到不同语言的页面时弹出的提示。
–hide-scrollbars:在屏幕截图中隐藏滚动条。
–mute-audio:将所有音频静音
–no-default-browser-check:禁用默认浏览器检查,不提示进行这样的设置
–no-first-run:跳过首次运行向导

任务节流:
–disable-background-timer-throttling:禁用在后台页面/选项卡中限制计时器
–disable-backgrounding-occluded-windows:通常,如果周围的窗口被另一个窗口遮挡(也称为视觉上覆盖),Chrome 会将“前景”选项卡视为背景选项卡。该标志禁用该功能。
–disable-features=CalculateNativeWinOcclusion:禁用以下功能:将来将使用 Windows 上的计算窗口遮挡来限制并可能卸载遮挡窗口中的前景选项卡。
–disable-hang-monitor:禁止渲染器进程中挂起监视器对话框。此标志可能允许页面上的缓慢卸载处理程序以防止选项卡关闭。
–disable-ipc-flooding-protection:一些 javascript 函数可用于通过 IPC 淹没浏览器进程。默认情况下,保护处于打开状态,将发送的 IPC 数量限制为每帧每秒 10 个。该标志禁用它。
–disable-renderer-backgrounding:这会禁止非前台选项卡获得较低的进程优先级。这不会(就其本身而言)影响计时器或绘画行为。

网络平台行为:
–aggressive-cache-discard:缓存丢弃
–allow-running-insecure-content:允许运行不安全内容
–disable-back-forward-cache:禁用 BackForwardCache 功能。
–disable-features=AcceptCHFrame:禁用接受 h2/h3 ACCEPT_CH客户端提示帧。
–disable-features=AutoExpandDetailsElement:于2022 年 9 月删除。
–disable-features=AvoidUnnecessaryBeforeUnloadCheckSync:如果启用,此功能会导致浏览器进程仅在知道已注册此类处理程序时才要求渲染器进程运行 beforeunload 处理程序。对于kAvoidUnnecessaryBeforeUnloadCheckSync,内容不会报告存在 beforeunload 处理程序。其后果是,通常会在继续之前检查 beforeunload 处理程序的导航不会,并且导航将同步继续。
–disable-features=BackForwardCache:禁用bfcache。
–disable-features=HeavyAdPrivacyMitigations
–disable-features=IsolateOrigins
–disable-features=LazyFrameLoading
–disable-features=ScriptStreaming:V8脚本流
–enable-precise-memory-info:使返回到 window.performance.memory 的值在共享工作线程中更加细化和更新。如果没有此标志,内存信息仍然可用,但它会被分桶并更新得不那么频繁。该标志也适用于工人。
–js-flags=–random-seed=1157259157:用固定种子初始化V8的RNG。
–use-fake-device-for-media-stream:使用假媒体流设备来代替摄像头和麦克风
–use-fake-ui-for-media-stream:通过选择媒体流的默认设备(例如WebRTC)来绕过媒体流信息栏。与 --use-fake-device-for-media-stream 一起使用。
–use-file-for-fake-video-capture=:使用文件进行虚假视频捕获(.y4m 或 .mjpeg) 需要–use-fake-device-for-media-stream

交互抑制:
–autoplay-policy=…user-gesture-required:不自动播放视频的值。no-user-gesture-required始终自动播放视频的值。
–deny-permission-prompts:通过自动拒绝来抑制所有权限提示。
–disable-external-intent-requests:禁止在外部应用程序中打开链接
–disable-features=GlobalMediaControls:隐藏可打开用于控制媒体会话的对话框的工具栏按钮。
–disable-features=ImprovedCookieControls:禁用改进的 UI,以便在隐身模式下阻止第三方 cookie。
–disable-notifications:禁用 Web 通知和推送 API。
–disable-popup-blocking:禁用弹出窗口阻止。–block-new-web-contents是这个的严格版本。
–disable-prompt-on-repost:重新加载来自 POST 的页面通常会提示用户。
–noerrdialogs:抑制所有存在的错误对话框。

自动化设置:
–enable-automation:禁用一些被认为不适合自动化的功能。(原始设计文档,虽然在这里重命名)codesearch。请注意,某些项目选择避免使用此标志:web-platform-tests/wpt/#6348、
设置window.navigator.webdriver为true所有 JS 上下文中。使用 --headless,–remote-debugging-pipe和–remote-debugging-port=0(是的,特别是0 )时也会设置此值。
禁用有关运行开发/解压扩展的气泡通知(来源)
禁用密码保存 UI(涵盖已失效 标志的用例–disable-save-password-bubble)
禁用信息栏动画(来源)
禁用网络错误时的自动重新加载(来源)
启用 CDP 方法Browser.getBrowserCommandLine。
避免显示这 4 个信息栏:ShowBadFlagsPrompt、GoogleApiKeysInfoBarDelegate、ObsoleteSystemInfoBarDelegate、LacrosButterBar
添加此信息栏:

–test-type:基本上是 2014 年版本–enable-automation。
它避免在 Mac 上的 ~/Applications 中创建应用程序存根。
它使退出代码稍微更正确
Windows 导航跳转列表未更新
不启动一些 chrome StartPageService
禁用初始化 chromecast 服务
“在测试期间不会启用带有后台页面的组件扩展,因为它们会生成大量可能干扰的后台行为。”
退出浏览器时,它会禁用可能停止退出过程的其他检查。(例如未保存的表单修改或未处理的个人资料通知…)
–remote-debugging-pipe:比通过 websocket 使用协议更安全
–remote-debugging-port=…:值为 0 时,Chrome 将自动选择可用端口并设置navigator.webdriver为true。
–silent-debugger-extension-api:当 Chrome 扩展程序使用页面附加到页面时,不显示信息栏chrome.debugger。需要附加到扩展背景页面。

窗口和屏幕管理:
–block-new-web-contents:所有弹出窗口和对 window.open 的调用都会失败。
–force-color-profile=srgb:强制将所有显示器视为具有指定的颜色配置文件。
–new-window:在新浏览器窗口中启动 URL。
–window-position=0,0:指定初始窗口位置:–window-position=x,y
–window-size=1600,1024:设置初始窗口大小。以字符串形式提供,格式为“800,600”。

流程管理:
–disable-features=DestroyProfileOnBrowserClose:禁用以下功能:在最后一个浏览器窗口关闭时(而不是浏览器退出时)销毁配置文件。
–disable-features=site-per-process:禁用 OOPIF。
–no-service-autorun:禁止服务进程将自身添加为自动运行进程。这不会删除现有的自动运行注册,它只是阻止服务注册新的自动运行注册。
–process-per-tab:没有做任何事情。使用 --single-process 代替。
–single-process:在与浏览器相同的进程中运行渲染器和插件。

无头模式:
–headless:以无头模式运行,即没有 UI 或显示服务器依赖项。
–headless=new:新的原生无头模式。(之前,–headless=chrome)
–no-sandbox:有时与 headless 一起使用,但不推荐。
–disable-dev-shm-usage:常用于Lambda、Cloud Functions场景。(
–disable-gpu:经常与 一起使用–headless,但从 2021 年开始,不再需要。

显示全文