测试小组-一步步提升测试技能

selenium中如何只截取某个元素的图

2017-12-05  本文已影响6人  只想躺赢

如下是根据百度搜索按钮就行的
1 、通过location获取元素的坐标

 #coding=utf-8

from selenium import webdriver

driver=webdriver.Chrome()

driver.get("https://www.baidu.com")

driver.save_screenshot('button.png')

element=driver.find_element_by_id("su")  

print (element.location)

执行结果如下图:


image.png

(ps:每个电脑不同,所以这块的两个值会有不同哦)
2.通过size获取元素的大小(其实就是把上面代码的最后一行的location改成size就好了)

 #coding=utf-8
 from selenium import webdriver
 driver=webdriver.Chrome()
 driver.get("https://www.baidu.com")
 driver.save_screenshot('button.png')
 element=driver.find_element_by_id("su")
 print (element.size)

最后的执行结果如下图:


image.png

3、这里就用到了python中另外一个东西pillow(图像处理库)

首先得安装这个pillow,在cmd里进行安装 pip install pillow就ok了

#coding=utf-8
from selenium import webdriver
from PIL import Image
driver=webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.save_screenshot('button.png')
element=driver.find_element_by_id("su")
print (element.location)
print (element.size)
left=element.location['x']
top=element.location['y']
right=element.location["x"]+element.size['width']
bottom=element.location['y']+element.size['height']
im=Image.open('button.png')
im=im.crop((left,top,right,bottom))
im.save('button.png')
image.png

最后保存的butto.png如下图所示


image.png

中间出现了一个插曲 1 和2 这两个打开的都是chrome,然后最后一段代码写的时候却写成了Firefox,执行的结果显示的location中的y和x值和上边的不一致,最后才发现实打开的浏览器不一样(很是尴尬),认真很重要。

上一篇下一篇

猜你喜欢

热点阅读