运行大约一个小时后,我的 selenium 浏览器将显示“Aw, Snap!”页面,我无法从控制台以任何方式与浏览器交互,我必须关闭浏览器并重新启动我的脚本。
对此有解释或简单的解决办法吗?
此错误屏幕...
...意味着 ChromeDriver 在加载新的 浏览上下文 即 Chrome 浏览器 会话时遇到问题。
您在运行基于 Chrome 浏览器 的 Selenium 测试约一个小时时看到此错误,此问题可能是由于
/dev/shm
的大小减小(即 /dev/shm
空间不足)而发生。举个例子:
mount -o remount,size=64M /dev/shm
理想情况下应该是:
mount --bind /tmp/ /dev/shm/
在 Docker 环境中运行 Chromium 时,
64M
大小几乎处于缩小状态。
根据问题 522853 中的讨论:Linux:Chrome/Chromium SIGBUS/哇,Snap!在小 /dev/shm 上:
Linux 上的util_posix.cc:GetShmemTempDir
尝试始终将 /dev/shm
用于不可执行内存。
/dev/shm
大小很大程度上取决于渲染器的数量、屏幕分辨率等。
/dev/shm
中空间不足之前
commit / revision 得到解决,修复了 CreateAnonymousSharedMemory()
在返回 fd 时不泄漏 FILE。
CreateAnonymousSharedMemory() 被修改为以文件描述符而不是 FILE 的形式返回可写内存句柄。由于 POSIX 不提供在不关闭底层文件描述符的情况下拆除 FILE 的标准方法,因此这是通过泄漏 FILE 来实现的。 我们现在提供
CreateAndOpenFdForTemporaryFileInDir()
,以避免将临时文件描述符包装到 FILE 中。
/dev/shm/
安装有足够的内存。
用户身份执行您的
@Test
。