• centos7下安装无头浏览器(headless Chrome)


    selenium是当前流行的WEB自动化工具,它可以启动本地浏览器,访问网页,模拟点击操作等,在自动化测试和网络爬虫中非常有用。

    一般开发环境都是有图形界面的,所以本地只要安装普通浏览器就行了,但是在服务器环境是没有图形界面的,所以需要安装无头浏览器,所谓无头浏览器就是没有图形界面,但仍能实现浏览器访问网页,渲染网页的功能。

    第一步,添加repo

    使用vim工具新建google.repo文件

    vi /etc/yum.repos.d/google.repo
    

    然后按 i 进入编辑模式,拷贝以下代码,按ESC再输入:wq保存退出

    1. [google]
    2. name=Google-x86_64
    3. baseurl=http://dl.google.com/linux/rpm/stable/x86_64
    4. enabled=1
    5. gpgcheck=0
    6. gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

    第二步,安装chrome

    更新yum源,安装chrome

    1. yum update
    2. yum install google-chrome-stable

    第三步,安装驱动chromedriver

    先查看chrome版本,再安装对应驱动

    google-chrome --version
    

    下载对应驱动

    wget -N http://chromedriver.storage.googleapis.com/浏览器版本号(比如88.0.4324.96)/chromedriver_linux64.zip

    如果显示404说明没对应版本,比如我的版本是105.0.5195.102就没有,那就打开http://chromedriver.storage.googleapis.com/

     然后搜索105.0.5195找最相近的版本,可以发现有105.0.5195.52,那就下载这个版本

    安装unzip工具

    yum install unzip
    

    解压

    unzip chromedriver_linux64.zip

    建立软链接

    ln -s chromedriver /usr/bin/chromedriver

    在任意目录输入chromedriver --version有正常返回,说明安装成功了

    使用JAVA代码测试

    1. public class TestMain {
    2. public static void main(String[] args) {
    3. //驱动地址,如果驱动放在/local/bin中则不需要
    4. //System.setProperty("webdriver.chrome.driver","/usr/local/chromedriver");
    5. ChromeOptions chromeOptions= new ChromeOptions();
    6. //2.设置为headless模式(必须) 如果不写代表不打开浏览器,反之
    7. chromeOptions.addArguments("--headless");
    8. // 禁用沙箱 linux环境
    9. chromeOptions.addArguments("--no-sandbox");
    10. chromeOptions.addArguments("--disable-dev-shm-usage");
    11. //3.设置浏览器窗口打开大小 (非必须)
    12. chromeOptions.addArguments("--window-size=1920,1080");
    13. WebDriver driver = new ChromeDriver(chromeOptions);
    14. driver.get("http://www.baidu.com");
    15. String title=driver.getTitle();
    16. System.out.println(title);
    17. driver.quit();
    18. }
    19. }

    maven代码,引入依赖,打包成可执行jar包

    1. <dependencies>
    2. <dependency>
    3. <groupId>org.seleniumhq.seleniumgroupId>
    4. <artifactId>selenium-javaartifactId>
    5. <version>3.141.59version>
    6. dependency>
    7. dependencies>
    8. <build>
    9. <plugins>
    10. <plugin>
    11. <groupId>org.springframework.bootgroupId>
    12. <artifactId>spring-boot-maven-pluginartifactId>
    13. <version>1.3.3.RELEASEversion>
    14. <executions>
    15. <execution>
    16. <goals>
    17. <goal>repackagegoal>
    18. goals>
    19. execution>
    20. executions>
    21. <configuration>
    22. <mainClass>cn.cloud.TestMainmainClass>
    23. configuration>
    24. plugin>
    25. plugins>
    26. build>

    打成可执行Jar包后放到linux服务器,通过java -jar xxx执行,打印以下信息说明成功了

  • 相关阅读:
    dropbear-ssh2
    【Leetcode】820. Short Encoding of Words
    解决底部导航栏闪烁的问题
    随笔:使用Python爬取知乎上相关问题的所有回答
    后渗透之流量转发实验
    CefSharp自定义缓存实现
    5种促进业务增长的软件测试策略,我敢打赌你一定不知道?
    狂神redis笔记09
    数字政府应用场景中数据安全体系
    python对文件转md5,用于文件重复过滤
  • 原文地址:https://blog.csdn.net/ting4937/article/details/126745964