最近计划做一个自动截图的工具,目的是实现性能测试资源监控平台(grafana)各硬件资源的自动截图,解放手工操作。前期的截图做了如下探索。


1. 整个页面截图

1.1 代码实现  

  通过save_screenshot或get_screenshot_as_file方法实现,但只能截取整个web页面图片。代码实现如下:

from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.save_screenshot('D:\Program Files\python3\silgen\save.png')
#save_screenshot同get_screenshot_as_file方法,如下亦可:
#driver.get_screenshot_as_file("D:\Program Files\python3\silgen\save.png")
driver.quit()

1.2 代码执行结果

1.3 截取图片如下

 2. 元素定位截图

  使用get_screenshot_as_png方法,截取后直接是二进制,并不能像前两个方法一样直接生成图片,我们再写入本地即可。

2.1 元素定位

  获取百度搜索框的xpath

  右键复制XPath如下:

#copy XPath
//*[@id="form"]

2.2 代码实现

  将XPath写入代码,实现如下:

from selenium import webdriver
from selenium.webdriver.common.by import By driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.implicitly_wait(5)
img_save = driver.find_element(By.XPATH, '//*[@id="form"]')
a = img_save.screenshot_as_png
with open("D:\Program Files\python3\silgen\save2.png", mode="wb")as f:
f.write(a)
driver.quit()

2.3 代码执行结果

 2.4 截取图片如下


grafana监控平台的各资源监控定位截图已经实现(根据不同的服务器类型、压测场景、压测时间执行CPU、内存、网络等资源的自动截图),不在此处展示。

UI通过元素定位实现特定区域截图的更多相关文章

  1. UI自动化测试元素定位思想

    2014年的最后一天,以一篇短文纪念一下. 经常看到有同学说UI自动化测试定位难,找不到北.这话是不错的,定位是难,灵活且复杂,需要经验加技术,但是有写东西是可以提炼出来作为思想去推而广之的. 简单来 ...

  2. UI测试之元素定位

    定位方式优先级选择:  ID>Name>CSS>XPath 1.使用id定位 2.使用name定位 3.使用class定位 4.使用css选择器定位 示例xml: <?xml ...

  3. python ui自动化之元素定位和常用操作

    做ui自动化的最基础的就是页面元素定位了,如果连页面元素都定位不到,自动化从何谈起呢?接下来我们就看看页面元素定位的方法吧!(这里就用百度页面来进行演示) 一.最通用的几种定位方式: 1.通过id定位 ...

  4. Appium自动化(10) - appium高级元素定位方式之 UI Automator API 的详解

    如果你还想从头学起Appium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1693896.html 前言 前面介绍过根据id,clas ...

  5. UI自动化之元素定位(xpath、css)

    很早之前就已经写过自动化了,不过点着功能久了就会容易忘记元素定位,尤其是xpath和css定位,所以就花点时间做下总结收集. xpath有两种定位: 一.绝对路径(不推荐使用,除非已经使用了所有方式仍 ...

  6. robot framework 笔记(二),web ui 元素定位

    背景: 元素定位的方式很多,有通过 id.name.class等等,有感兴趣的同学可以参看相关文档,本文介绍 跟过文字定位的方法,在工作中一直使用这一种 no bb 方法如下: 1.根据"我 ...

  7. Web UI自动化测试基础——元素定位(三)

    本篇文章整理了元素定位的基础知识——iframe框架中的元素定位. 一.iframe框架元素定位 iframe是Html页面的内联框架,如果在自动化测试中无法定位到某个元素,那么很有可能是因为该元素在 ...

  8. Web UI自动化测试基础——元素定位(二)

    本篇文章整理了元素定位的基础知识——多个元素定位方式. 一.多个元素定位方式简介 同单个元素定位方式相同,多个元素定位方式也有与之对应的8种方式,即id.name.class_name.tag_nam ...

  9. Web UI自动化测试基础——元素定位(一)

    本篇文章整理了元素定位的基础知识——单个元素定位方式. 一.单个元素定位方式简介 1. find_element_by_id 通过元素的id属性进行定位.以百度首页为例,首先进入https://www ...

  10. UI自动化通过文字、父子元素,兄弟元素定位

    在百度首页,通过文字,父子元素,兄弟元素进行定位 一.文字定位: 通过界面上的文字进行定位,注意如果同一个页面上存在多个同样的文字的情况,返回的值会是多个,建议只存在一个情况下才用这方法. 如:定位百 ...

随机推荐

  1. Java动态调用实体的get方法

    /** * 动态调用实体的get方法(注意返回值) * @param dto 实体 * @param name 动态拼接字段 * @return {@link String} * @date 2021 ...

  2. phpstudy-pikachu-数字型注入(post)

    抓包搞到格式 id=1&submit=%E6%9F%A5%E8%AF%A2 查字符段 id=1 order by 2&submit=%E6%9F%A5%E8%AF%A2 id=1 un ...

  3. 2019年蓝桥杯C/C++大学B组省赛真题(等差数列)

    题目描述: 数学老师给小明出了一道等差数列求和的题目.但是粗心的小明忘记了一部分的数列,只记得其中N 个整数. 现在给出这N 个整数,小明想知道包含这N 个整数的最短的等差数列有几项? 输入格式 输入 ...

  4. celery笔记一之celery介绍、启动和运行结果跟踪

    本文首发于公众号:Hunter后端 原文链接:celery笔记一之celery介绍.启动和运行结果跟踪 本篇笔记内容如下: celery 介绍 celery 准备 celery 启动和异步任务的运行 ...

  5. CentOS 8 已是绝版?还有后续么?

    文章由 Linux爱好者( ID: LinuxHub)整理自开源中国 + 红帽官方.本文章经原作者同意后授权转载. 2020年12月8日,CentOS 项目宣布,CentOS 8 将于 2021 年底 ...

  6. 让优惠再续一年!SHPC 老客专享

    最近云筏君经常收到自家小伙伴发来的关于产品活动的关心慰问,掐指一算,哦,原来是一年一度大家喜闻乐见的剁手节(学名"双十一")马上要来了! 大家都知道,云筏家的产品向来主打高性价比, ...

  7. C++面试八股文:C++中,函数的参数应该传值还是传引用?

    某日二师兄参加XXX科技公司的C++工程师开发岗位第8面: 面试官:C++中,函数的参数应该传值还是传引用? 二师兄:要看参数的用途.如果是出参,必须传引用.如果是入参,主要考虑参数类型的大小,来决定 ...

  8. oracle常用函数(持续更新)

    1.table() 把返回结果集合的函数返回的结果,以表的形式返回 例:table(p_split('1,2,3'),',') 2.to_char() 按照指定格式输出字符串 to_char(sysd ...

  9. 用声明式宏解析 Rust 语法

    在上一篇 Rust 声明式宏中的 Metavariables 有哪些 的基础上, 今天尝试解析一下 Rust 中的几种 item.我们知道一个 crate 是由 item 组成的,每一个 fn str ...

  10. The content of element type “web-app“ must match 解决方法

    报错原因 ‍ 问题描述 : 在创建 SpringMVC 时 , 选用 idea 的 webapp 模板来创建 , xml 配置文件中进行配置时发现提示警告 警告如下: ‍ ​ ​ 这错误大概的意思就是 ...