最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

UI通过元素定位实现特定区域截图

来源:博客园

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

1. 整个页面截图

1.1 代码实现


(资料图)

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

from selenium import webdriverdriver = 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 webdriverfrom selenium.webdriver.common.by import Bydriver = webdriver.Chrome()driver.get("https://www.baidu.com")driver.implicitly_wait(5)img_save = driver.find_element(by=By.XPATH, value="//*[@id="form"]")    #"form"改为"form"a = img_save.screenshot_as_pngwith open("D:\Program Files\python3\silgen\save2.png", mode="wb")as f:    f.write(a)driver.quit()

2.3 代码执行结果

2.4 截取图片如下

grafana监控平台的各资源监控定位截图已经实现,不在此处展示。

关键词: 硬件资源 特定区域 生成图片