专栏首页python 自动化测试Selenium-04-网页自动截图

Selenium-04-网页自动截图

前言

在自动化测试中,获取屏幕截图是必不可少的,在测试报告中有效的截图能更有说服力。

截图方法

方法1:get_screenshot_as_file()

方法2:save_screenshot()

方法3:im.crop((left, top, right, bottom)) # 对浏览器截图进行裁剪

实例

登录禅道并进行截图

"""
 * Create by dell on 2020/10/10
 * Author :wencheng
 * 微信公众 :自动化测试 To share
"""
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from PIL import Image
from time import sleep

class run_case(object):
    def __init__(self):
        self.C_driver = webdriver.Chrome()
    def run_chandan(self):
        self.C_driver.get("http://58.87.103.42:9091/zentao/user-login-L3plbnRhby8=.html")
        self.C_driver.maximize_window()
        # 截取整个页面
        nowTime = time.strftime("%Y%m%d.%H.%M.%S")
        t = self.C_driver.get_screenshot_as_file("get_screenshot_as_file%s.png" % nowTime)
        print(u"get_screenshot_as_file截图结果: %s" % t)
        print("==============================================")
        nowTime = time.strftime("%Y%m%d.%H.%M.%S")
        t = self.C_driver.save_screenshot("save_screenshot%s.png" % nowTime)
        print(u"save_screenshot截图结果: %s" % t)
        chandao_img = WebDriverWait(self.C_driver, 20).until(
            EC.presence_of_element_located((By.CSS_SELECTOR, '.table-row'))
        )
        print("==============================================")
        nowTime = time.strftime("%Y%m%d.%H.%M.%S")
        self.C_driver.save_screenshot("%s.png" % nowTime)  # 对整个浏览器页面进行截图
        left = chandao_img.location['x']
        top = chandao_img.location['y']
        right = chandao_img.location['x'] + chandao_img.size['width']
        bottom = chandao_img.location['y'] + chandao_img.size['height']
        im = Image.open("%s.png" % nowTime)
        im = im.crop((left, top, right, bottom))  # 对浏览器截图进行裁剪
        im.save('chandao_img.png')
        print("截图完成")
        sleep(2)
        self.C_driver.close()
if __name__ == '__main__':
    run_case().run_chandan()

执行结果:

截图文件:

截图内容:

get_screenshot_as_file()

save_screenshot()

im.crop((left, top, right, bottom)) # 对浏览器截图进行裁剪

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家的支持。

本文分享自微信公众号 - 自动化测试 To share(gh_92d7607a3e04),作者:wencheng

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-10-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python+locust性能测试学习笔记

    Locust(俗称 蝗虫)一个轻量级的开源压测工具,基本功能是用Python代码描述所有测试。不需要笨拙的UI或庞大的XML,只需简单的代码即可。

    wencheng
  • Selenium-01-测试环境搭建使用

    Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8...

    wencheng
  • 优化httprunner2.x测试报告

    2.在template目录中放入extent_report_template2.x.html文件

    wencheng
  • pytorch学习笔记(六):自定义Datasets

    什么是Datasets: 在输入流水线中,我们看到准备数据的代码是这么写的data = datasets.CIFAR10("./data/", transfor...

    ke1th
  • Python在windows CMD中输出中文

    happy123.me
  • Pytest+Allure+Jenkins接口自动化项目实战(一)

    经过一周多时间,基于python+pytest+excel+allure框架的接口自动化测试初版已基本实现,包括基本配置读取、用例读取、用例执行...

    橙子探索测试
  • Python骚操作-自动抢火车票

    还有不到一个月就过春节了,你回家的火车票都买了吗?如果没有买到的话,不妨试用下本文的 Python 程序来帮你抢火车票,也可以帮你的家人和朋友来抢票,顺带学习一...

    somenzz
  • 数据结构与算法-散列表

    如果创建的数据大小小于我们要存储的数据量,那么会导致每个数据不能对应唯一到数组上的位置。例如我们创建一个长度为 26 的数组(英文字母的个数),用它来存储所有的...

    lucifer210
  • python继承threading.Thread实现有返回值的子类实例

    继承与threading.Thread实现有返回值的子类MyThread,废话不多说,大家直接看代码

    砸漏
  • 在浏览器上访问USB设备

    这些非标准USB设备要求硬件供应商编写本机驱动程序和SDK,以便您(开发人员)能够利用它们。遗憾的是,此本地代码历来阻止了Web使用这些设备。这就是创建WebU...

    云深无际

扫码关注云+社区

领取腾讯云代金券