Python Selenium 自动化实现截屏操作
2020-12-17 22:34
标签:doc image code end 开始 一个 assert 函数 cas 一、今天小编就为大家分享一篇对 Python 获取屏幕截图的 3 种方法详解 1、采用 selenium 中的两种截图方法 2、方法三:Windows 环境下截图需要用到 PIL 库,使用 pip 安装 PIL 库 Python Selenium 自动化实现截屏操作 标签:doc image code end 开始 一个 assert 函数 cas 原文地址:https://www.cnblogs.com/ZhengYing0813/p/14105755.html
from PIL import ImageGrab
import time
def screenshot_image1(webdriver, image_path):
nowTime = time.strftime("%Y-%m-%d_%H-%M-%S")
imageName = image_path + "/" + "bug_image{}.png".format(nowTime)
webdriver.save_screenshot(imageName)
def screenshot_image2(webdriver, image_path):
nowTime = time.strftime("%Y-%m-%d_%H-%M-%S")
imageName = image_path + "/" + "bug_image{}.png".format(nowTime)
webdriver.get_screenshot_as_file(imageName)
"""
第一个参数 开始截图的x坐标
第二个参数 开始截图的y坐标
第三个参数 结束截图的x坐标
第四个参数 结束截图的y坐标
"""
bbox = (0, 0, 1920, 1080)
im = ImageGrab.grab(bbox) # grab() 默认截全屏
import time
import unittest
from selenium import webdriver
from selenium.webdriver.common.by import By
from screenshot.ScreenShotFunc import *
class Test_Baidu_Search(unittest.TestCase):
def setUp(self) -> None:
self.driver = webdriver.Chrome()
self.driver.get("https://www.baidu.com")
self.driver.maximize_window()
self.driver.implicitly_wait(10)
def tearDown(self) -> None:
time.sleep(2)
self.driver.quit()
def test01(self):
self.driver.find_element(By.ID, "kw").send_keys("Python")
time.sleep(2)
self.driver.find_element(By.ID, "su").click()
# time.sleep(3)
title = self.driver.title
# 调用第一种方法实现截图
"""
try:
self.assertIn("Python", title)
except Exception as E:
image_path = "D:\work_doc\CodeFile\dcs_class6\screenshot_image"
screenshot_image1(self.driver, image_path)
raise AssertionError(E)
"""
# 调用第二种方法实现截图
"""
try:
self.assertIn("Python", title)
except Exception as E:
image_path = "D:\work_doc\CodeFile\dcs_class6\screenshot_image"
screenshot_image2(self.driver, image_path)
raise AssertionError(E)
"""
# 调用第三种方法实现截图
try:
self.assertIn("Python", title)
except Exception as E:
image_path = "D:\work_doc\CodeFile\dcs_class6\screenshot_image"
screen_shot(image_path)
raise AssertionError(E)
if __name__ == ‘__main__‘:
unittest.main()
下一篇:创建线程的三种方式
文章标题:Python Selenium 自动化实现截屏操作
文章链接:http://soscw.com/index.php/essay/36945.html