Selenium:设置无头浏览器

Selenium:设置无头浏览器

在使用selenium执行测试用例时,每条用例执行过程中都会打开一个浏览器,如果用例数量过多时,每次运行均需要调用一次浏览器,增加了服务器压力,而无头模式就可以解决这种问题,他可以让运行速度更快,占用的资源也更少,让浏览器偷偷的在后台工作。

无头模式,是webdriver浏览器驱动的一个功能,可以支持不打开浏览器,直接跟网页进行交互,能够模拟真实得到浏览器进行操作。

操作环境

Windows 10
Python 3.1.1
Selenium 4.0.0
Chrome 浏览器

使用方法

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

chrome_options = Options()
chrome_options.add_argument('--headless')
driver = webdriver.Chrome(options=chrome_options)

# 通过driver.get()来打开对应链接
driver.get(url="https://www.baidu.com/")

使用例子

这是一个打开youtube视频,然后截图的例子

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
import time
from PIL import Image
import schedule


def job():
   
    # 创建Chrome浏览器驱动
    chrome_options = Options()
    chrome_options.add_argument('--headless')
    driver = webdriver.Chrome(options=chrome_options)
    

    # 打开视频页面
    driver.get("https://www.youtube.com/watch?v=qmRkvKfr")
    time.sleep(2)
    driver.find_element(by=By.CLASS_NAME,value="ytp-large-play-button").click()


    # 等待视频加载完成
    time.sleep(5)

    # 截图并保存
    driver.save_screenshot("screenshot.png")

    # 关闭浏览器
    driver.quit()

    # 打开图片文件
    image = Image.open('screenshot.png')

    # 定义裁剪的区域,左上角和右下角的坐标
    left = 150
    top = 90
    right = 700
    bottom = 400

    # 裁剪图片
    cropped_image = image.crop((left, top, right, bottom))

    # 保存裁剪后的图片
    cropped_image.save('cropped_image.png')
    print('执行完毕')


schedule.every(60).seconds.do(job) # 每隔10秒执行一次任务

while True:
    try:
        schedule.run_pending()
        time.sleep(1)
    except:
        print('重新运行')
© 版权声明
THE END
喜欢就支持一下吧
点赞15赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容