21-selenium之options模块

目录

             前言

 加载用户配置文件

 设置编码

 添加请求头

  禁止加载图片

  无界面运行

  设置开发者模式启动

  禁用浏览器弹窗

  禁用JavaScript

  隐藏滚动条

  以最高权限运行

  添加插件

  添加代理

  debug模式


前言

    做自动化测试过程中,有时需要绕过验证码或如下场景中都可以使用该模块

  • 禁止图片和视频的加载:提升网页加载速度。
  • 使用请求头:访问移动端的站点,一般这种站点的反爬技术比较薄弱。
  • 添加扩展:像正常使用浏览器一样的功能。
  • 设置编码:应对中文站,防止乱码。
  • 添加代理:用于访问某些页面,或者应对IP访问频率限制的反爬技术。

 加载用户配置文件

    说明:此方法加载用户的配置文件,可绕过已登录的网站的登录页面

  • 在Chrome地址栏输入chrome://version/,查看自己的“个人资料路径
  • 注意:1)路径到User  Data ,不要后面的Default    2)关闭所有的Chrome进程(必须关闭在运行的浏览器)

21-selenium之options模块_第1张图片

# -*- coding: utf-8 -*-
# @Time    : 2021/3/4
# @Author  : 大海
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
# 设置成用户自己的数据目录
options.add_argument(r'--user-data-dir=C:\Users\\AppData\Local\Google\Chrome\User Data')  

url = 'https://blog.csdn.net/IT_heima'
driver = webdriver.Chrome(options=options)
driver.get(url)
time.sleep(5)
driver.quit()

 设置编码

# -*- coding: utf-8 -*-
# @Time    : 2021/3/4
# @Author  : 大海
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
# 设置中文编码格式
options.add_argument('lang=zh_CN.UTF-8')
driver = webdriver.Chrome(options=options)

driver.get('https://blog.csdn.net/IT_heima')
time.sleep(5)
driver.quit()

 添加请求头

# -*- coding: utf-8 -*-
# @Time    : 2021/3/4
# @Author  : 大海
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
# 浏览器
options.add_argument(
    'user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"')
driver = webdriver.Chrome(options=options)

driver.get('https://blog.csdn.net/IT_heima')
time.sleep(5)
driver.quit()

  禁止加载图片

# -*- coding: utf-8 -*-
# @Time    : 2021/3/4
# @Author  : 大海
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
# 禁止加载图片
options.add_argument('blink-settings=imagesEnabled=false')
driver = webdriver.Chrome(options=options)
driver.get('https://blog.csdn.net/IT_heima')
time.sleep(5)
driver.quit()

  无界面运行

# -*- coding: utf-8 -*-
# @Time    : 2021/3/4
# @Author  : 大海

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
# 浏览器不提供可视化页面运行
options.add_argument('--headless')

url = 'https://blog.csdn.net/IT_heima'
driver = webdriver.Chrome(options=options)
driver.get(url)
# 打印title,来确定是否运行
print(driver.title)
driver.quit()

  设置开发者模式启动

# -*- coding: utf-8 -*-
# @Time    : 2021/3/4
# @Author  : 大海
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
# 设置开发者模式,一般反爬比较好的网址都会根据这个反爬
options.add_experimental_option('excludeSwitches', ['enable-automation'])

url = 'https://blog.csdn.net/IT_heima'
driver = webdriver.Chrome(options=options)
driver.get(url)
time.sleep(5)
driver.quit()

  禁用浏览器弹窗

# -*- coding: utf-8 -*-
# @Time    : 2021/3/4
# @Author  : 大海
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
# 禁用浏览器弹窗
prefs = {
    'profile.default_content_setting_values': {
        'notifications': 2
    }}
options.add_experimental_option('prefs', prefs)

url = 'https://blog.csdn.net/IT_heima'
driver = webdriver.Chrome(options=options)
driver.get(url)
time.sleep(5)
driver.quit()

  禁用JavaScript

# -*- coding: utf-8 -*-
# @Time    : 2021/3/4
# @Author  : 大海
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
# 禁用JavaScript
options.add_argument("--disable-javascript")

url = 'https://blog.csdn.net/IT_heima'
driver = webdriver.Chrome(options=options)
driver.get(url)
time.sleep(5)
driver.quit()

  隐藏滚动条

# -*- coding: utf-8 -*-
# @Time    : 2021/3/4
# @Author  : 大海
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
# 隐藏滚动条
options.add_argument('--hide-scrollbars')

url = 'https://blog.csdn.net/IT_heima'
driver = webdriver.Chrome(options=options)
driver.get(url)
time.sleep(5)
driver.quit()

# option.add_argument(r'--user-data-dir=C:\Users\wz100\AppData\Local\Google\Chrome\User Data')  # 设置成用户自己的数据目录
# driver = webdriver.Chrome(options=options)
# url = 'https://pan.baidu.com/disk/home?fr=ibaidu#/all?path=%2F&vmode=list'

  以最高权限运行

# -*- coding: utf-8 -*-
# @Time    : 2021/3/4
# @Author  : 大海
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
# 以最高权限运行
options.add_argument('--no-sandbox')

url = 'https://blog.csdn.net/IT_heima'
driver = webdriver.Chrome(options=options)
driver.get(url)
time.sleep(5)
driver.quit()

  添加插件

# -*- coding: utf-8 -*-
# @Time    : 2021/3/4
# @Author  : 大海
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
# 添加插件
extension_path = '你想要加载的插件路径'
options.add_extension(extension_path)

url = 'https://blog.csdn.net/IT_heima'
driver = webdriver.Chrome(options=options)
driver.get(url)
time.sleep(5)
driver.quit()

  添加代理

# -*- coding: utf-8 -*-
# @Time    : 2021/3/4
# @Author  : 大海

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

PROXY = "proxy_host:proxy:port"
options = Options()
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)

  debug模式

  • 启动浏览器dbug模式时,需要把其他的已打开浏览器的进程先全部关闭
  • 9222是默认端口,可以随意修改。但别使用已经被占用的端口
# -*- coding: utf-8 -*-
# @Time    : 2021/3/6
# @Author  : 大海
 
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
 
# 前面打开的浏览器,手动打开百度首页
# 下面的代码是在搜索框输入内容
 
options = Options()
options.debugger_address = "127.0.0.1:9222"
driver = webdriver.Chrome(options=options)

driver.find_element_by_id('kw').send_keys('测试一下')
driver.quite()
 

 

 

 

你可能感兴趣的:(#,python+selenium,selenium,python)