selenium 定製啟動 chrome 的選項
阿新 • • 發佈:2018-12-30
序
使用 selenium
時,我們可能需要對 chrome
做一些特殊的設定,以完成我們期望的瀏覽器行為,比如阻止圖片載入
,阻止JavaScript執行
等動作。這些需要 selenium
的 ChromeOptions
來幫助我們完成
什麼是 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)