chromeDriver报错:WebDriverException: unknown error: session deleted because of page crash

Selenium与旧版Chrome崩溃问题:系统性诊断与实战解决方案 在自动化测试与数据抓取领域,浏览器自动化是核心技术之一,其核心原理是通过WebDriver协议控制浏览器实例执行操作。这项技术的价值在于提升测试效率、实现大规模数据采集,广泛应用于UI自动化测试、爬虫开发和监控脚本等场景。然而,当自动化测试遇上浏览器崩溃,特别是与旧版本Chrome(如Chrome 109)结合时,稳定性问题会严重影响工程实践。本文聚焦于**Selenium**与**Chrome 109**这类特定环境下的崩溃难题,深入剖析其根源,并提供从进程管理、资源监控到代码健壮性加固的系统性解决方案, 阅读详情

环境

使用docker+chrome_driver进行自动化截图

异常信息

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.openqa.selenium.WebDriverException: unknown error: session deleted because of page crash
from unknown error: cannot determine loading status
from tab crashed
  (Session info: chrome-headless-shell=122.0.6261.94)
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'fc932151e48c', ip: '11.0.0.34', os.name: 'Linux', os.arch: 'amd64', os.version: '3.10.0-862.el7.x86_64', java.version: '1.8.0_312'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities {acceptInsecureCerts: false, browserName: chrome-headless-shell, browserVersion: 122.0.6261.94, chrome: {chromedriverVersion: 122.0.6261.94 (880dbf29479c..., userDataDir: /tmp/.org.chromium.Chromium...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:33196}, javascriptEnabled: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: LINUX, platformName: LINUX, proxy: Proxy(), setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
Session ID: fe3094fcdb359a9daa2a8e75f50e4e1e
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:517)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:584)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:791)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1626)
	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:228)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)

解决方案

在github上看到说是因为docker容器内的 /dev/shm 内存过小导致的page crash
解决措施:

  • 启动chomedriver时增加参数:--disable-dev-shm-usage12
    :option.addArguments(“–disable-dev-shm-usage”)
    我是通过该种方式解决的问题
    该参数解释解释:
    --disable-dev-shm-usage参数用于禁用Chrome浏览器中的/dev/shm内存临时文件系统的使用。在默认情况下,Chrome浏览器会将其临时文件存储在/dev/shm目录下,这个目录通常是挂载在内存中的,而不是磁盘上。这样做的目的是为了提高性能,因为内存读写速度通常比硬盘读写速度快得多。

    然而,在某些情况下,/dev/shm的内存大小可能会有限,导致Chrome运行过程中占用的内存过多,从而导致Chrome进程被系统强制终止。为了解决这个问题,可以使用--disable-dev-shm-usage参数来禁用Chrome浏览器使用/dev/shm目录,而是使用基于磁盘的临时文件存储。这样可以确保Chrome进程占用的内存不会超出系统限制,从而提高稳定性。

  • 修改 /dev/shm的大小
    1、以特权模式启动:docker run --privileged
    2、修复 /dev/shm 大小过小的问题

docker exec $id sudo umount /dev/shm
docker exec $id sudo mount -t tmpfs -o rw,nosuid,nodev,noexec,relatime,size=512M tmpfs /dev/shm

参考资料:
https://github.com/elgalu/docker-selenium/issues/20
https://stackoverflow.com/questions/53902507/unknown-error-session-deleted-because-of-page-crash-from-unknown-error-cannot

Docker容器化Selenium Grid部署与自动化测试实践指南 容器化技术通过将应用程序及其依赖环境打包成标准化的镜像,实现了环境一致性、资源隔离和快速部署。其核心原理是利用操作系统级虚拟化,在宿主机上创建轻量级、独立的运行环境。这一技术为软件开发和测试带来了革命性价值,特别是在解决环境配置复杂性和提升跨平台兼容性方面。在自动化测试领域,容器化技术能够显著简化测试环境的搭建与维护流程。Selenium作为主流的Web自动化测试框架,常与Docker结合使用,形成容器化的Selenium Grid解决方案。该方案将Selenium Hub和浏览器节点封装为Docker镜像 阅读详情

相关推荐

初学树莓派——(九)DHT11数据传入ONENET

目录 前言 DHT11实现本地温湿度监测 DHT11.py 接线图 效果图 温湿度数据上传至ONENET 新建产品 新建设备 ONENET.py 测试 Shell脚本配置 效果图 前言 本文分部分实现温湿度上传至OneNet云平台,本地数据监测,数据上传 新建一个文件夹,文件夹内包含DHT11.py、ONENET.py、tmp_data.txt、hum_data.txt DHT11实现本地温湿度监测 DHT11.py import RPi.GPIO as GPIO

会点灯的大力水手的博客 2610

比较少见的异常记录和对应的解决方法

​@TOCtimeout: Timed out receiving message from renderer: 300.000 org.openqa.selenium.TimeoutException: timeout: Timed out receiving message from rendererfrom unknown error: cannot determine loading status from tab crashed (Session info: chrome=100.0.4896.6

Franciz777的博客 3625

Python画常见分布的概率密度图

因为做概随大作业,了解了一些python画概率分布图的方法。

qq_44807946的博客 5204

selenium.WebDriverException: unknown error: network connection must be enabled 报错 ChromeDriver

java.util.concurrent.ExecutionException: org.openqa.selenium.WebDriverException: unknown error: network connection must be enabled (Session info: headless chrome=80.0.3987.149) Build info: version:...

a1833255的博客 5592

使用3d Slicer标注病灶并生成ROI掩膜

本篇博客给大家演示一下如何使用3d Slicer标注病灶并生成ROI掩膜,供深度学习模型训练使用。 关于3d Slicer和MRIcron的安装请看我的另一个帖子。 一、数据加载 你可以使用你手头的数据进行标注,这里为了示例方便,我是用的3d Slicer中给出的Sample Data中的MRBrainTumor1的数据。 二、病灶标注及保存 Modules选择Segment Editor: 然后点击Add按钮添加一个Segment,在下方便签上双击可以修改Segment的命名和颜色等。下方三个按钮

Su_Del的博客 1万+

pwscf与wannier90 Hands-On实战训练(一)——费米面计算为例

系列文章目录 Quantum Espresso Hands-On实战训练(三)——DOS计算 文章目录系列文章目录计算过程pwscf直接得到等能面pwscf和wannier90得到等能面pwscf直接得到等能面1. scf2. nscf3. 后处理pwscf和wannier90得到等能面1. Kpoints2. scf3. nscf4. pw2wan及wannier90.x5. XCrySDen可视化 计算过程 pwscf直接得到等能面 pwscf和wannier90得到等能面 pwscf直接得到等能面

weixin_45973682的博客 5069

common.exceptions.WebDriverException_ Message_ unknown error_ session deleted because of page crash

在部署的Docker项目上用到了selenium 去模拟滑块验证码的识别,最近出现下面的问题频率较高。可以通过添加了两个启动参数来解决这个问题。通过Google搜索问题,发现是。

锡城小凯的博客 1617

Avalonia 超级详细学习指南

什么是 Avalonia?Avalonia 是一个开源的、跨平台的 GUI 框架,允许开发者使用 XAML 和 C# 构建现代化、高性能的桌面应用程序。与其他框架相比,Avalonia 具有强大的跨平台能力和灵活的界面设计。} }()Avalonia 的特点和优势跨平台性:Avalonia 可以在 Windows、Linux、macOS 等多个平台上运行,开发者可以编写一套代码,然后在不同的操作系统上运行相同的应用程序。

仰望星空的博客 1万+

java装上有未知错误,java – Selenium:未知错误:由于页面崩溃而删除了会话

当我在chrome上运行我的selenium代码时,我得到以下错误,但它在firefox上运行正常.org.openqa.selenium.WebDriverException: unknown error: session deleted because of page crashfrom unknown error: cannot determine loading statusfrom ta...

weixin_42627541的博客 742

Python地理数据处理 十七:植被物候提取和分析(Savitzky-Golay)

植被是陆地生态系统中最重要的组分之一,也是对气候变化最敏感的组分,其在全球变化过程中起着重要作用,能够指示自然环境中的大气、水、土壤等成分的变化,其年际和季节性变化可以作为地球气候变化的重要指标。此外,由于生态工程保护建设和植被自然生长等因素,中国陆地生态系统发挥了重要的碳汇作用。因此,定量评估植被时空动态变化是制定生态系统可持续发展目标和衡量生态系统固碳潜力的重要前提,卫星遥感数据衍生的生态参量产品为研究长时间序列全球及区域植被时空变化提供了重要数据源。SG滤波能够对物候信息进行平滑,并提取其中的物候信息

amyniez的博客,欢迎交流讨论 4246

Weka学习笔记01:初探Weka世界

下载、安装和启动Weka、Weka数据格式

howard2005的专栏 1468

解决docker中运行scrapy使用chrome selenium报错InvalidSessionIdException: Message: invalid session id

本来在本地运行好好的scrapy,结果移植到docker中就报错,完整报错是:selenium.common.exceptions.InvalidSessionIdException: Message: invalid session id 大家可以在控制台搜索一下是否同时有这个报错:selenium.common.exceptions.WebDriverException: Message: unknown error: session deleted because of page crash 解决方法

呆萌的代Ma 3435

零停机更新黑科技:Spring Boot应用实现无缝升级的实战指南

本文介绍了基于Spring Boot和Tomcat实现零停机更新的技术方案,通过动态端口切换和优雅关闭机制,确保服务更新过程中业务不中断。文章详细解析了核心原理,包括内嵌Tomcat的工作机制、零停机更新的三大技术基石(端口动态切换、优雅关闭和进程接管)。同时提供了完整的Java实现代码,重点展示了端口动态检查、参数动态调整、旧进程优雅终止等关键逻辑。该方案适用于高可用系统升级场景,能够有效避免传统部署方式导致的服务中断问题,实现100%无感知的应用更新。

墨夶的博客 818

Selenium常见报错全解析:从环境配置到元素交互的实战排错指南

Web自动化测试是软件质量保障的关键环节,其核心原理是通过程序模拟用户操作浏览器。Selenium作为主流的自动化测试框架,通过WebDriver协议与浏览器驱动交互,实现对网页元素的定位与操作,技术价值在于提升测试效率与覆盖率。在实际工程实践中,开发者常会遇到因环境配置、动态页面元素或网络问题导致的脚本执行失败。本文聚焦于Selenium自动化测试中的高频报错,如‘NoSuchElementException’和‘ElementNotInteractableException’,深入剖析其背后的驱动通信机

weixin_33736832的博客 378

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Docker selenium自动化 - 修改/dev/shm路径大小实例演示,“session deleted because of page crash“问题解决

unknown error: session deleted because of page crash 译: 未知错误:由于页面崩溃而删除会话。 unknown error: cannot determine loading status 译: 未知错误:无法确定加载状态。 该问题是由于 /dev/shm 分区默认只有 64M 比较小,不够用导致的。 在这里插入图片描述 解决方法: 我们在创建实例的时候加个 --shm-size="500M" 参数即可。

小蓝枣的博客 2744

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

selenium:Message: unknown error : session deleted because of page crash

Message: unknown error : session deleted because of page crash from unknown error : cannot determine 1oading status

苏寅的博客 2600

UnknownError: session deleted because of page crash from tab crashed

放至在服务器下的python爬虫,不知怎么停了,一看日志报错如下: UnknownError: session deleted because of page crash from tab crashed 首先执行代码df -h查看系统磁盘占用: 注意我红线的地方,看一下是哪个的使用率已经到达百分之百了,如果是/dev/shm达到100%,参考以下博客进行扩容https://blog.youkuaiyun.com/dghh81279/article/details/101341499 这是比较简单的问题

楚七sky的博客 4280

selenium报错总结

1、Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: call function result missing 'value'   (Session info: chrome=65.0.3325.181)   (Driver info: chromedriver=2.34.522940...

测试媛 3456

selenium chrome 浏览器闪退

升级 chrome60,chromedriver2.31 解决。多开了几个浏览器就出现闪退的情况,

weixin_52947687的博客 699

appium环境配置报错

Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: Unable to create a new remote session. Please check the server log for more details. Original error: An unknown server-side error occurred while processing the command. Original ...

菜鸟的博客 1382

docker中使用selenium selenium.common.exceptions.WebDriverException: Message: unknown error: session del

解决部署在服务器上的selenium异常

mygodit的博客 852

Selenium报错ERR_NAME_NOT_RESOLVED

Selenium报错ERR_NAME_NOT_RESOLVED

weixin_45114101的博客 3477

【java】Selenium爬虫控制谷歌浏览器

每逢佳节倍思亲,中秋节到了,这里祝愿大家中秋节快乐。 今天主要向大家介绍的是如何自动打开浏览器并自动搜索指定内容。 1. 下载谷歌浏览器驱动 为什么要下载驱动? 因为一般的写爬虫的方法是用脚本直接对目标网站进行访问,而且只对目标数据进行采集,访问速度很快,这样目标网站很容易就识别出你是爬虫,然后把你封锁了。这个时候,为了更加像人浏览网站,需要一个控制器来控制浏览器,这样就可以避开封锁,很多...

XYZ 2163

selenium+Firefox遇到过的坑

运行了好久的爬虫系统,突然发现爬取不到数据了,上服务器一查报错: 2021-08-24 10:12:10.611 [http-nio-8081-exec-1] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/reptile].[dispatcherServlet] --- Servlet.service() for servlet [dispatcherServlet] in context with path [/r

qq_25073953的博客 1849
上一篇: Java命令行最实用的命令
下一篇: chromeDriver如何实现模拟手动选择本地文件上传(抖音视频上传)
JavaWizard-M
博客等级 码龄6年 3159粉丝 148原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值