Selenium4 + chrome + pytest

浏览器options配置及常用的操作方法:

from selenium.webdriver.chrome.options import Options

options = Options() # 创建配置对象
options.add_argument('lang=zh_CN.UTF-8') # 设置中文
options.add_argument('--headless=new') # 无头参数,浏览器隐藏在后台运行
options.add_argument('--disable-gpu') # 禁用GPU加速
options.add_argument('--start-maximized') # 浏览器最大化
options.add_argument('--window-size=1680,1250') # 设置浏览器分辨率(窗口大小)

options.add_argument('--disable-dev-shm-usage') # 禁用 dev-shm 使用

option.add_argument('--disable-browser-side-navigation') # 禁用浏览器侧导航

options.add_argument('--user-agent=""') # 设置请求头的User-Agent
options.add_argument('--incognito') # 隐身模式(无痕模式)
options.add_argument(f'--proxy-server={proxy}') # 添加IP代理 proxy=f"http://{ip}:{port}"
# 关闭'Chrome正受到,自动测试软件的控制'的提示
options.add_experimental_option('useAutomationExtension', False)
options.add_experimental_option('excludeSwitches', ['enable-automation'])
options.add_experimental_option('prefs', {'profile.managed_default_content_settings.images': 2}) # 禁用图片加载
driver.set_page_load_timeout(20) # 设置连接超时20秒
options.add_experimental_option('detach', True) # 不自动关闭浏览器

driver = webdriver.Chrome(options=options) # 创建浏览器对象
driver.get('https://www.baidu.com')

Selnium的页面加载策略(pageLoadStrategy)有三种:

1. normal:等待整个页面加载完毕再开始执行操作

2. eager:等待整个dom树加载完成,即DOMContentLoaded这个事件完成,也就是只要 HTML 完全加载和解析完毕就开始执行操作。放弃等待图片、样式、子帧的加载。

3. none:等待html下载完成,哪怕还没开始解析就开始执行操作。

默认情况下,当 Selenium WebDriver 加载页面时,它遵循的是normal加载策略,所以就会导致页面加载过慢,特别是在图片、样式等文件过大时,慢的就尤其明显了。

配置代码如下:

chrome_options = Options()
chrome_options.page_load_strategy = 'eager'
driver = webdriver.Chrome(options=chrome_options)

 

posted @ 2024-06-07 16:27  致远方  阅读(59)  评论(0编辑  收藏  举报