如下是根据百度搜索按钮就行的
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值和上边的不一致,最后才发现实打开的浏览器不一样(很是尴尬),认真很重要。
网友评论