Chrome headless 模式


我們在通過Selenium運行自動化測試時,必須要啟動瀏覽器,瀏覽器的啟動與關閉必然會影響執行效率,而且還會干擾你做其它事情(本機運行的話)。

那能不能把自動化測試的運行放在后台?當然可以!

  • htmlunit 項目可以模擬瀏覽器運行,是一個沒有界面的瀏覽器,運行速度快。

  • PhantomJS 是一個基於webkit的JavaScript API。它使用QtWebKit作為它核心瀏覽器的功能,使用webkit來編譯解釋執行JavaScript代碼。任何你可以在基於webkit瀏覽器做的事情,它都能做到。

  • Chrome-headless 模式,Google 自己出的無頭瀏覽器模式。

htmlunit 在Selenium 下面,我都沒跑通過一個 baidu 的 demo, 因為它不打開 UI 界面,所以,你也不知道它后台是如何渲染頁面的。 棄之!

PhantomJS 非常不錯,因為是使用的 QtWebKit 瀏覽器內核渲染頁面,基本可以和真正瀏覽器保持一致。

Chrome-headless 模式, Google 針對 Chrome 瀏覽器 59版 新增加的一種模式,可以讓你不打開UI界面的情況下使用 Chrome 瀏覽器,所以運行效果與 Chrome 保持完美一致。PhantomJS作者表示,你這么搞我失業了啊!

 

用法

Python Selenium 用法:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--headless')
driver = webdriver.Chrome(chrome_options=chrome_options)

...

 

Java Selenium用法:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

public class WebTest {

    public static void main(String[] args) throws InterruptedException {

        ChromeOptions chromeOptions = new ChromeOptions();
        chromeOptions.addArguments("--headless");
        WebDriver driver = new ChromeDriver(chromeOptions);

        ...

    }
}

 


免責聲明!

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



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