首页 > 其他 > 详细

selenium--浏览器窗口截图

时间:2019-07-14 00:39:56      阅读:144      评论:0      收藏:0      [点我收藏+]

前戏

在进行web自动化的时候,只有一个报错信息是不行的,往往需要截图来帮助我们来快速的定位问题,试想一下,我们在一个弹框里添加一些数据,点击保存后,然后在操作元素,这时selenium报错,说找不到这个元素,如果只看错误信息,那我们可能会以为是没找到这个元素,而前面的添加数据保存是成功的。那有没有这样的可能,当我们点击保存的时候,一个必填项的输入框由于元素的改变,而没有输入,这时候点击保存会提示有必填项没有填,所以问题是出在点击保存之前,而不是在点击保存之后。如果这时能保存到图,我们就能很方便的定位到问题

实战

# 打开百度首页截图,输入 python 搜索后截图
from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()
driver.get(http://www.baidu.com)
driver.get_screenshot_as_file(rE:\1234.png)  # 路径不存在不报错,但保存不了

sleep(2)
driver.find_element_by_css_selector(#kw).send_keys(python)
driver.find_element_by_css_selector(#su).click()
sleep(10)
driver.get_screenshot_as_file(rE:\2345.png)
driver.quit()

注意:图片的后缀必须是png,如果不是png,则会报一个警告,在源码中也有说明

    def get_screenshot_as_file(self, filename):
        """
        Saves a screenshot of the current window to a PNG image file. Returns
           False if there is any IOError, else returns True. Use full paths in
           your filename.

        :Args:
         - filename: The full path you wish to save your screenshot to. This
           should end with a `.png` extension.

        :Usage:
            driver.get_screenshot_as_file(‘/Screenshots/foo.png‘)
        """
        if not filename.lower().endswith(.png):
            warnings.warn("name used for saved screenshot does not match file "
                          "type. It should end with a `.png` extension", UserWarning)
        png = self.get_screenshot_as_png()
        try:
            with open(filename, wb) as f:
                f.write(png)
        except IOError:
            return False
        finally:
            del png
        return True
if not filename.lower().endswith(‘.png‘) 如果不是以.png结尾,则会抛出警告

 

selenium--浏览器窗口截图

原文:https://www.cnblogs.com/zouzou-busy/p/11182755.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!