selenium使用rect,location,size查看图片(或其他元素)大小,坐标

1、在做验证码验证的时候需要抠图,所以需要到这几个属性进行查看,以百度为例:

    直接定位百度首页的百度一下按钮


    其中location返回的数据是:{'x': 1179, 'y': 222},button的坐标为(1179,222),注意:坐标轴是以屏幕左上角为原点,x轴向右递增,y轴向下       递增;

    size返回的数据是:{'height': 44, 'width': 108};size对于的是元素(图片等)的高度和宽度;

    location返回的数据是:{'height': 44, 'width': 108, 'x': 1179, 'y': 222.234375};

    可能有偏差:之所以会出现这个坐标偏差是因为windows系统下电脑设置的显示缩放比例造成的,location获取的坐标是按显示100%时得到的        坐标,而截图所使用的坐标却是需要根据显示缩放比例缩放后对应的图片所确定的,因此就出现了偏差。

    解决这个问题有三种方法:

    ①修改电脑显示设置为100%。这是最简单的方法;

    ②缩放截取到的页面图片,即将截图的size缩放为宽和高都除以缩放比例后的大小;

    ③修改Image.crop的参数,将参数元组的四个值都乘以缩放比例。


2、当你需要扣图的时候,注意location的坐标轴,就不会把方向搞错了

    例如上面的:

    获取到x,y坐标后,可以对元素进行抠图

    抠图的crop需要安装PIL:pip install Pillow

3、截图和抠图如下


你可能感兴趣的:(selenium使用rect,location,size查看图片(或其他元素)大小,坐标)