Python學習筆記之selenium 定製啓動 chrome 的選項

在自動化中,默認狀況下咱們打開的就是一個普通的純淨的chrome瀏覽器,而咱們平時在使用瀏覽器時,常常就添加一些插件,擴展,代理之類的應用。因此使用 selenium 時,咱們可能須要對 chrome 作一些特殊的設置,以完成咱們指望的瀏覽器行爲,好比阻止圖片加載阻止JavaScript執行 等動做。這些須要 selenium的 ChromeOptions 來幫助咱們完成。python

什麼是 chromeoptions

chromeoptions 是一個方便控制 chrome 啓動時屬性的類。chromeoptions 主要提供以下的功能:web

  • 設置 chrome 二進制文件位置 (binary_location)
  • 添加啓動參數 (add_argument)
  • 添加擴展應用 (add_extension, add_encoded_extension)
  • 添加實驗性質的設置參數 (add_experimental_option)
  • 設置調試器地址 (debugger_address)

定製啓動選項

以上的幾個功能中咱們最經常使用的是如下三個功能:chrome

  • 添加chrome啓動參數(add_argument)
  • 修改chrome設置(add_experimental_option)
  • 添加擴展應用(add_extension)

下面以python爲例一一說明.瀏覽器

添加 chrome 啓動參數

# 啓動時設置默認語言爲中文 UTF-8
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('lang=zh_CN.UTF-8')
# 啓動瀏覽器最大化
options.add_argument("--start-maximized")
#最經常使用的應用場景是設置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"')
#模擬Android
options.add_argument('user-agent="MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22; CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"') 

driver = webdriver.Chrome(chrome_options = options)

修改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)

添加擴展

# 添加xpath helper應用
from selenium import webdriver
options = webdriver.ChromeOptions()

# 設置好應用擴展
extension_path = 'D:/extension/XPath-Helper_v2.0.2.crx'
chrome_options.add_extension(extension_path)

# 啓動瀏覽器,並設置好wait
browser = 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)
下面來看個例子:
    chrome_driver = PATH_BROWSER_DRIVER_CHROME
    os.environ["webdriver.chrome.driver"] = chrome_driver
#禁止彈出框
    prefs = {'profile.default_content_settings.popups': 0}
    options = webdriver.ChromeOptions()
    options.add_experimental_option('prefs', prefs)
    options.add_experimental_option("excludeSwitches", ["ignore-certificate-errors"])
    driver = webdriver.Chrome(chrome_driver, chrome_options=options)
#等同於
    driver = webdriver.Chrome(executable_path=chrome_driver,chrome_options=options)
參考地址:https://blog.csdn.net/zwq912318834/article/details/78933910
相關文章
相關標籤/搜索