原文地址:
http://www.cnblogs.com/fnng/p/7797839.html
我們在通過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 用法:
#coding=utf-8 from selenium import webdriver from selenium.webdriver.chrome.options import Options import time chrome_option = Options() chrome_option.add_argument('--headless') driver = webdriver.Chrome(chrome_options=chrome_option) driver.get("https://www.baidu.com") driver.implicitly_wait(10) driver.save_screenshot('1.png') driver.get_screenshot_as_file("D:\\tools\\test\\2.png") driver.find_element_by_id("kw").send_keys(u"博客園") driver.save_screenshot('2.png') time.sleep(5) driver.quit()