1、自动下载google-chrome: curl /install-google-chrome.sh | bash
或者下载rpm版本的chrome然后用命令:
yum localinstall google-chrome-stable_current_x86_64.rpm 安装
2、将chromedriver驱动放到/usr/bin中
3、如果遇到The driver is not executable: /usr/bin/chromedriver,则进入/usr/bin目录使用chmod a+x chromedriver赋予可执行
注意:
selenium需要使用selenium-server.jar。
org.openqa.selenium.InvalidArgumentException:需要查看截图的链接是不是以"http://" 或者 "https://"开头。
安装chrome时提示缺少依赖可以使用:yum provides */缺少的依赖,查看依赖包的来源,找到base中所属的依赖包时,再使用命令:yum install 依赖包名称,进行下载。
测试截图发现图片中文字部分又方框和乱码,解决方案:
mkdir -p /usr/share/fonts/chinese/ #创建中文字体目录
cp songti.ttf /usr/share/fonts/chinese/ #将字体文件拷贝到/usr/share/fonts/chinese/中
cd /usr/share/fonts/chinese/ fc-cache -fv #为刚加入的字体设置缓存使之有效
fc-list #查看系统中的字体
public static String run(String htmlUrl){String imgUrl = "";//驱动地址// System.setProperty("webdriver.chrome.driver","D:/chromedriver/chromedriver.exe");System.setProperty("webdriver.chrome.driver", ReportConfig.DRIVERPATH);ChromeOptions options=new ChromeOptions();//设置 chrome 的无头模式options.addArguments("--headless");options.addArguments("--disable-gpu");//解决DevToolsActivePort文件不存在的报错options.addArguments("--no-sandbox");options.addArguments("--disable-dev-shm-usage");//浏览器最大化options.addArguments("--start-maximized");//隐藏滚动条options.addArguments("--hide-scrollbars");//滚动高度// options.addArguments("--window-size=1000,1680");//启动一个 chrome 实例WebDriver webDriver = new ChromeDriver(options);//访问网址webDriver.get(htmlUrl);try {Thread.sleep(10000);//定位section元素WebElement element = webDriver.findElement(By.id("app"));int width = element.getSize().getWidth();int height = element.getSize().getHeight();// System.out.println(width+", "+height);webDriver.manage().window().setSize(new Dimension(width,height));//截取全屏File file = ((TakesScreenshot) webDriver).getScreenshotAs(OutputType.FILE);//上传图片到服务器MultipartFile multipartFile = FileUtil.fileToMultipartFile(file);String dateStr = TimeUtils.dateToString(new Date(), TimeUtils.FORMAT_yMd);imgUrl = BaiShanCloudUtil.uploadFile_One(multipartFile, BaiShanCloudUtil.IMGROOTPATH + "/daily/daily-" + dateStr, null);System.out.println("图片上传地址:"+imgUrl);//保存图片到本地// FileUtils.copyFile(file, new File("D:/chromedriver/week--07-22.png"));// FileUtils.copyFile(file, new File("/opt/daily-img/week--07-22.png"));log.info("截图完成");}catch (Exception e){log.error("截图图片保存出错:"+e);}finally {//退出浏览器webDriver.quit();}return imgUrl;}