赞
踩
在我们使用Selenium驱动ChromeDriver时,可以弹出谷歌浏览器,模拟人为操作谷歌浏览器,这就是自动化测试。虽然很厉害,但是也有一个很现实的问题,因为是要真实加载完整网页,导致效率低。在自动化测试时,我们其实只需要知道是测试完成还是未完成,至于能否看到完整的UI对我们来说是不重要的,那Headless Chrome就是谷歌为此类需求定制的无UI浏览器,因为 UI 需要 CPU 和 RAM 开销,所以Headless Chrome会快很多。
先说下演示环境:
OS:Mac
Python:3.11.1
Chrome:111.0.5563.110
Selenium:4.8.3
使用的功能:
- import time
-
- from selenium import webdriver
-
- # 初始化浏览器
- driver = webdriver.Chrome()
-
- # 访问网页
- driver.get('https://www.baidu.com')
-
- # 睡眠5秒
- time.sleep(5)
-
- # 关闭浏览器
- driver.close()
效果:
在这里,我们将使用无头自动化浏览器,因为我们将使用此功能:
- from selenium import webdriver
- from selenium.webdriver.chrome.options import Options
-
- # 配置选项
- options = Options()
-
- # 设置使用无头浏览器
- options.add_argument("--headless")
-
- # 初始化浏览器
- driver = webdriver.Chrome(options=options)
-
- # 访问网页
- driver.get('https://www.baidu.com')
-
- # 打印标题
- print(driver.title)
-
- # 关闭浏览器
- driver.close()
在需要频繁更新URL的脚步中,可以配置不加载图片等,可以加快速度
- from selenium.webdriver.chrome.options import Options
-
- # 配置选项
- options = Options()
-
- # 设置使用无头浏览器
- options.add_argument("--headless=new")
- # 禁用gpu加速
- options.add_argument("--disable-gpu")
- # 禁止浏览器被监控提示
- options.add_experimental_option("excludeSwitches", ["enable-automation"])
- # 不自动关闭浏览器
- options.add_experimental_option('detach', True)
- # 设置请求头user-agent
- options.add_argument("--user-agent=''")
- # 设置窗口最大化
- options.add_argument('--start-maximized')
- # 设置窗口大小
- options.add_argument('--window-size=200,200')
- # 无痕模式
- options.add_argument('--incognito')
- # 隐藏滚动条
- options.add_argument('--hide-scrollbars')
- # 禁用js
- options.add_argument('--disable-javascript')
- # 不加载图片(拦截图片)
- options.add_argument('--blink-settings=imagesEnabled=false')
所有选项可以看这里:
https://peter.sh/experiments/chromium-command-line-switches/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。