文章目录
- 前言
- 使用步骤
- 总结
- 遇到的坑
- 1,开始不知道mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim 基础系统是Debian ,yum装不上。 应该用 apt-get
- 2,wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb #有时候链接不上。
- 3,请求报错Starting ChromeDriver 2.36.540471 (9c759b81a907e70363c6312294d30b6ccccc2752) on port 35058。加上 options.AddArgument("--no-sandbox")
前言
本文主要是针对在.netcore linux docker 中 Selenium 配置。使用步骤
1.在服务端安装chrome浏览器,也就是在docker 内部创建chrome浏览器。我这边是配置的CICD,自己重新打个带chrome的镜像基础包.
代码如下:
docker run -it mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim /bin/bash #创建。netcore一个默认的容器并进入
apt-get update
apt-get -y install wget
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb #有时候链接不上,多试几次 (实在不行手动下载拷贝到容器内)
apt-get install ./google-chrome-stable_current_amd64.deb
经过半小时的安装完成了。
google-chrome-stable -version
Google Chrome 90.0.4430.93
2.下载对应版本的chromedriver并安装
浏览器是Google Chrome 90.0.4430.93 下载基本差不多的http://npm.taobao.org/mirrors/chromedriver/90.0.4430.24//chromedriver_linux64.zip
将chromedriver 解压到 /usr/bin
wget https://registry.npmmirror.com/binary.html?path=chromedriver/100.0.4896.60/chromedriver_linux64.zip
unzip -d /usr/bin chromedriver_linux64.zip
查看chromedriver 版本
chromedriver -v
3.将容器打包成镜像
docker commit -a="simple" -m="added chrome based on .netcore3.1" 28a66ebccd55 dotnetcore-with-chrome:v3.1
ChromeOptions options = new ChromeOptions();
options.AddArguments("lang=zh_CN.UTF-8");
//不显示浏览器,无头模式
options.AddArgument("--headless");
// 禁用图片
//options.AddUserProfilePreference("profile.default_content_setting_values.images", 2);
// GPU加速可能会导致Chrome出现黑屏及CPU占用率过高,所以禁用
options.AddArgument("--disable-gpu");
//options.AddArgument("window-size=1024,768");
options.AddArgument("--no-sandbox");//一定要加,不然的话报错Starting ChromeDriver 2.36.540471 (9c759b81a907e70363c6312294d30b6ccccc2752) on port 35058
driver.Navigate().GoToUrl(BaseUrl);
dockerfile: