selenium - docker上的Seleninum Chrome驱动程序会话错误
问题描述
我正在使用 docker 镜像 selenium/standalone-chrome:4.0.0 来运行 selenium,昨天刚刚开始抛出错误。
这是我的 chrome 网络驱动程序选项:
val chromeOptions = ChromeOptions()
chromeOptions.setHeadless(isHeadless)
chromeOptions.addArguments(
"--whitelisted-ips",
"--no-sandbox",
"--disable-extensions",
"start-maximized",
"enable-automation",
"--disable-infobars",
"--disable-dev-shm-usage",
"--disable-browser-side-navigation",
"--disable-gpu", "window-size=1980,960"
)
我得到的错误是:
由于选项卡崩溃的页面崩溃而删除会话(会话信息:headless chrome = 81.0.4044.92)构建信息:版本:'未知',修订:'未知',时间:'未知'系统信息:主机:'ip-10- 0-3-6.eu-west-1.compute.internal',ip:'10.0.3.6',os.name:'Linux',os.arch:'amd64',os.version:'4.14.152- 127.182.amzn2.x86_64', java.version: '1.8.0_242' 驱动信息: org.openqa.selenium.chrome.ChromeDriver Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 81.0.4044.92, chrome: {chromedriverVersion: 81.0 .4044.69 (6813546031a4b..., userDataDir: /tmp/.com.google.Chrome.LfBvAx}, goog:chromeOptions: {debuggerAddress: localhost:40023}, javascriptEnabled: true, networkConnectionEnabled: false, pageLoadStrategy: none, platform: LINUX , 平台名称: LINUX,代理:Proxy(),setWindowRect:true,strictFileInteractability:false,超时:{implicit:0,pageLoad:300000,脚本:30000},unhandledPromptBehavior:关闭并通知,webauthn:virtualAuthenticators:true}会话ID:bfce4fb924589b8929dc0351195352e1 ***元素信息:{使用=id,值=XXXXX`
无效的会话 id 构建信息:版本:'未知',修订:'未知',时间:'未知'系统信息:主机:'ip-10-0-3-6.eu-west-1.compute.internal', ip: '10.0.3.6', os.name: 'Linux', os.arch: 'amd64', os.version: '4.14.152-127.182.amzn2.x86_64', java.version: '1.8.0_242' 驱动程序信息:org.openqa.selenium.chrome.ChromeDriver Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 81.0.4044.92, chrome: {chromedriverVersion: 81.0.4044.69 (6813546031a4b ..., userDataDir: /tmp/.com.google .Chrome.LfBvAx}, goog:chromeOptions: {debuggerAddress: localhost:40023}, javascriptEnabled: true, networkConnectionEnabled: false, pageLoadStrategy: none, platform: LINUX, platformName: LINUX, proxy: Proxy(), setWindowRect: true, strictFileInteractability:错误,超时:{implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior:dismiss and notify, webauthn:virtualAuthenticators: true} 会话 ID:bfce4fb924589b8929dc0351195352e1
如果我需要添加更多代码,请告诉我。
提前致谢!
解决方案
由于 /dev/shm 太小,某些版本的 Chrome 似乎在 Docker 容器中的某些页面上崩溃了。
要解决它,只需安装-v /dev/shm:/dev/shm
或者,更长,创建一个大的 shm
以特权模式启动: docker run --privileged
修复小 /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
以上取自此处,信用归各自所有者所有。
您也可以使用 Firefox,这应该没有任何问题。
推荐阅读
- python - ValueError:无法将字符串转换为浮点数:''在 Python 3 中
- javascript - 未定义方法mysqli_result,卡在这个错误中
- python - 防止 Jupyter 在普通数学记数法和科学记数法之间切换
- c - 如何反转多行输入?(C)
- python - ModuleNotFoundError:即使安装了模块,也没有名为“mysql”的模块
- c# - 有没有办法使错误消息循环?
- r - 将数据合并到每组一行
- python - 如何在运行之前搜索 python 脚本以使用类方法?
- javascript - 检查 IF 语句中的哪个条件为真
- wso2 - WSO2 APIM 3.0.0 在编辑 master-datasources.xml 文件后拒绝启动