所謂瀏覽器的無頭模式headless,就是瀏覽器在運行時處于后臺操作的模式,不會看到瀏覽器打開,也就不會干擾你手頭的工作。對于自動化測試和網絡爬蟲都有很大的價值。
早期我們使用 phantomJS 瀏覽器來實現這種模式,隨著 Chrome 和 Firefox 都加入了無頭模式, Selenium 逐漸停止對 phantomJS 的支持。
Chrome 的 headless
Chrome 的無頭模式,通過在打開瀏覽器前加入 --headless 參數配置即可實現。
from selenium import webdriver
from selenium.webdriver.chrome.options import Options # => 引入Chrome的配置
import time
# 配置
ch_options = Options()
ch_options.add_argument("--headless") # => 為Chrome配置無頭模式
# 在啟動瀏覽器時加入配置
driver = webdriver.Chrome(chrome_options=ch_options) # => 注意這里的參數
driver.get('http://baidu.com')
driver.find_element_by_id('kw').send_keys('測試')
driver.find_element_by_id('su').click()
time.sleep(2)
# 只有截圖才能看到效果咯
driver.save_screenshot('./ch.png')
driver.quit()
Firefox 的 headless
Firefox 瀏覽器的無頭模式配置與 Chrome 差不多,只是寫法有差異。
from selenium.webdriver.firefox.options import Options # => 引入Firefox配置
from selenium import webdriver
import time
# 配置瀏覽器
ff_options = Options()
ff_options.headless = True # => 設置無頭模式為 True
driver = webdriver.Firefox(firefox_options=ff_options) # => 注意這里的參數
driver.get('http://baidu.com')
driver.find_element_by_id('kw').send_keys('測試')
driver.find_element_by_id('su').click()
time.sleep(2)
# 截圖看效果
driver.save_screenshot('./ff.png')
driver.quit()
感受一下吧!