在 Python 里利用了 PIL.Image 这个模块,其中的 image.crop() 方法,PIL 是一个自带模块。

def capture(self, what):              #waht是webelement
        begin = what.location
        size = what.size
        start_x = begin['x']
        start_y = begin['y']
        end_x = start_x + size['width']
        end_y = start_y + size['height']
        name = str(start_x)+'_'+str(start_y)+'_'+str(end_x)+'_'+str(end_y)
        box = (start_x, start_y, end_x, end_y)
        self.driver.get_screenshot_as_file(tmp + '/' + 'full_screen.png')
        image = Image.open(tmp + '/' + 'full_screen.png')        #tmp是临时文件夹
        newimage = image.crop(box)
        newimage.save(tmp + '/' + name + '.png')
        os.popen('rm %s/full_screen.png' %tmp)

主要思路是先截取整个屏幕,这个 Appium 自带的 get_screenshot_as_file() 就可以实现,然后根据 element 的坐标在大图中截取 element 的部分。


↙↙↙阅读原文可查看相关链接,并与作者交流