linux+java+webdriver chrome handless無界面啟動


網上現有的解決方案要么是windows下的,要么是python的,搞了一天終於解決了,記錄如下。

1 下載chrome linux版和對應版本的webdriver,我這里使用的是chrome66和chromedriver2.38,selenium版本選最新的就行,我這里用的是3.11

  chrome:自己找

  selenium:自己找

  chromedriver:http://npm.taobao.org/mirrors/chromedriver/

2 java代碼 

  System.setProperty("webdriver.chrome.driver", "/usr/bin/chromedriver");  //chromederiver存放位置
  System.setProperty("webdriver.chrome.bin", "/opt/google/chrome/chrome");  //chrome安裝位置
  ChromeOptions options = new ChromeOptions();

  options.addArguments("headless");  //無界面參數
  options.addArguments("no-sandbox");  //禁用沙盒 就是被這個參數搞了一天

  WebDriver driver = new ChromeDriver(options);

  driver.get("http://www.baidu.com");

  System.out.println(driver.getTitle());

3 解決思路

  按網上的方法整了半天都沒搞定,最后一直查資料,查到作者寫的說明,說可以在linux下使用如下參數無界面啟動chrome

    ./chrome --handless

  使用此命令后報錯ERROR:zygote_host_impl_linux.cc(88)] Running as root without --no-sandbox is not supported.

  意思是在root用戶下不能開啟沙箱模式!

  於是用如下參數就正常啟動了!

    ./chrome --handless --no-sandbox

  所以在java代碼里寫入該參數就行了!

 

參考:

http://www.cnblogs.com/technologylife/p/5829944.html

https://developers.google.cn/web/updates/2017/04/headless-chrome

https://intoli.com/blog/running-selenium-with-headless-chrome/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM