selenium中整个页面的截图及局部截图(方法分析)
selenium中整个页面的截图及局部截图(方法分析)
from selenium import webdriver
from PIL import Image
from time import sleep
import time
def test1():
browser = webdriver.Chrome()
#打开一个注册界面
browser.get('http://localhost:8080/jpress/user/register')
#最大化浏览器
browser.maximize_window()
#下面三行是为截图加上时间
t = time.time()
picture_name1 = str(t) + '.png'
#下面一行为保存整个页面的截图
browser.save_screenshot(picture_name1)
ce = browser.find_element_by_id('captchaimg')#获取验证码区域左上角的位置
print(ce.location)#打印ce的x,y坐标
left = ce.location['x']
top = ce.location['y']
right = ce.size['width'] + left
height = ce.size['height'] + top
im = Image.open(picture_name1)#打开刚才保存的截图
#抠图
# sleep(2)
img = im.crop((left,top,right,height))#截取验证码部分
t = time.time()
picture_name2 = str(t) + '.png'
img.save(picture_name2)#保存
browser.close()#关闭浏览器
上面的代码是视频教程上的源码,但是有点复杂了,而且想要得到局部截图的时候,总是得不到预期的结果,好在经过自己的一番查找,终于找到了一种比较好的方法。
整个页面的截图和上面一样,没什么问题,关键是局部截图,只需使用screenshot方法即可,如下
from selenium import webdriver
import time
def test2():
browser = webdriver.Chrome()
#打开一个注册界面
browser.get('http://localhost:8080/jpress/user/register')
#最大化浏览器
browser.maximize_window()
t = time.time()
# t = t.strftime('%Y-%m-%d %H:%M:%S')思考一下怎么改为这种时间格式命名?
picture_name2 = str(t) + '.png'
#下面是显示等待的方法
WebDriverWait(browser, 10, 0.5).until(lambda el: browser.find_element_by_id('captchaimg'))
browser.find_element_by_id('captchaimg').screenshot(picture_name2)
browser.close()
【华为OD机试真题】可以转到CSDN相关专栏订阅学习:https://blog.csdn.net/weixin_45541762/article/details/129903356
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】