我注意到,当通过selenium chromedriver启动带有新用户数据目录的chrome时,它消耗的资源(cpu,内存和磁盘)比正常启动时要少得多。
我能够找到原因之一是硒chromedriver启动时带有以下参数:
--disable-background-networking
--disable-client-side-phishing-detection
--disable-default-apps
--disable-hang-monitor
--disable-popup-blocking
--disable-prompt-on-repost
--disable-sync
--disable-web-resources
--enable-automation
--enable-logging
--force-fieldtrials=SiteIsolationExtensions/Control
--ignore-certificate-errors
--log-level=0
--metrics-recording-only
--no-first-run
--password-store=basic
--test-type=webdriver
--use-mock-keychain
应用这些参数后,CPU,内存和磁盘使用率大大下降。但是,磁盘使用率仍然大约高出10倍。使用Windows Resource Monitor,我分析了I / O的使用情况,并看到大量写入chrome_url_fetcher目录和另一个目录,并用下划线分隔了两个随机的5位数字。 RANDOMNUMBER_RANDOMNUMBER。这两个目录都位于%temp%文件夹中,并且包含名称中包含“ pepperflashplayer”的文件。
我假设这是铬,它安装了Pepperflash的必要组件,但是为什么硒chromedriver不是这种情况?有什么办法可以阻止我?
答案 0 :(得分:2)
Selenium 驱动的 ChromeDriver 启动 google-chrome v87.0.4280.88 浏览上下文是通过这些额外的 Command Line Switches 启动的:
--disable-background-networking
:禁用多个在后台运行网络请求的子系统。--disable-client-side-phishing-detection
:禁用客户端网络钓鱼检测功能。--disable-default-apps
:在首次运行时禁用默认应用程序的安装。这在自动化测试期间使用。--disable-hang-monitor
:禁止渲染器进程中的挂起监视器对话框。--disable-popup-blocking
:禁用弹出窗口阻止。--disable-prompt-on-repost
:此开关可用于禁用检查用户是否尝试导航到作为帖子结果的页面。--disable-sync
:禁止将浏览器数据同步到 Google 帐户。--enable-automation
:启用浏览器由自动化控制的指示。--enable-blink-features=ShadowDOMV0
:启用一项或多项支持 Blink 运行时的功能。--enable-logging
:控制是否启用控制台日志记录并可选择配置它的路由位置。--log-level=0
:设置最低日志级别。--no-first-run
:跳过首次运行任务,无论它是否真的是首次运行。--no-service-autorun
:禁止服务进程将自身添加为自动运行进程。--password-store=basic
:指定要使用的加密存储后端。--remote-debugging-port=0
:在指定端口上通过 HTTP 启用远程调试。--test-type=webdriver
:当前测试工具的类型(“浏览器”或“ui”或“webdriver”)。--use-mock-keychain
--user-data-dir="C:\Users\username\AppData\Local\Temp\scoped_dir9640_113432031
:浏览器存储用户配置文件的目录。data:,
使用这些额外的命令行开关使得 Google Chrome 进程的初始化需要更少的回调以及禁用更多callbacks
除此之外,常规 chrome 会话使用的 Flash 是:
32.0.0.465 C:\Users\username\AppData\Local\Google\Chrome\User Data\PepperFlash\32.0.0.465\pepflashplayer.dll
其中,ChromeDriver 启动的 Chrome 会话使用的 Flash 是:
30.0.0.154 C:\WINDOWS\system32\Macromed\Flash\pepflashplayer64_30_0_0_154.dll
出于上述原因,ChromeDriver 启动的 Google Chrome 比常规的 Google Chrome 更轻巧,内存消耗更少。