1. 程式人生 > >selenium 定製啟動 chrome 的選項

selenium 定製啟動 chrome 的選項

使用 selenium 時,我們可能需要對 chrome 做一些特殊的設定,以完成我們期望的瀏覽器行為,比如阻止圖片載入阻止JavaScript執行 等動作。這些需要 seleniumChromeOptions 來幫助我們完成

什麼是 chromeoptions

chromeoptions 是一個方便控制 chrome 啟動時屬性的類。通過 selenium 的原始碼,可以看到,chromeoptions 主要提供如下的功能:

  • 設定 chrome 二進位制檔案位置 (binary_location)
  • 新增啟動引數 (add_argument)
  • 新增擴充套件應用 (add_extension, add_encoded_extension)
  • 新增實驗性質的設定引數 (add_experimental_option)
  • 設定偵錯程式地址 (debugger_address)

定製啟動選項

我們最常用的是三個功能

  • 新增chrome啟動引數
  • 修改chrome設定
  • 新增擴充套件應用

下面以python為例一一說明,其他語言可以參考 selenium 原始碼

新增 chrome 啟動引數

# 啟動時設定預設語言為中文 UTF-8
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('lang=zh_CN.UTF-8'
) driver = webdriver.Chrome(chrome_options = options)

最常用的應用場景是設定user-agent以用來模擬移動裝置,比如模擬 iphone6

options.add_argument('user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1"')

修改chrome設定

# 禁止圖片載入
from selenium import
webdriver options = webdriver.ChromeOptions() prefs = { 'profile.default_content_setting_values' : { 'images' : 2 } } options.add_experimental_option('prefs',prefs) driver = webdriver.Chrome(chrome_options = options)

新增擴充套件

from selenium import webdriver
options = webdriver.ChromeOptions()
extension_path = '/extension/path'
options.add_extension(extension_path)
driver = webdriver.Chrome(chrome_options = options)

附贈新增代理方法

from selenium import webdriver
PROXY = "proxy_host:proxy:port"
options = webdriver.ChromeOptions()
desired_capabilities = options.to_capabilities()
desired_capabilities['proxy'] = {
    "httpProxy":PROXY,
    "ftpProxy":PROXY,
    "sslProxy":PROXY,
    "noProxy":None,
    "proxyType":"MANUAL",
    "class":"org.openqa.selenium.Proxy",
    "autodetect":False
}
driver = webdriver.Chrome(desired_capabilities = desired_capabilities)