Python爬虫之Selenium实现窗口截图

前言:由程序去执行的操作不允许有任何误差,有些时候在测试的时候未出现问题,但是放到服务器上就会报错,而且打印的错误信息并不十分明确。这时,我在想如果在脚本执行出错的时候能对当前窗口截图保存,那么通过图片就可以非常直观地看出出错的原因。WebDriver提供了截图函数get_screenshot_as_file()来截取当前窗口。

本章中用到的关键方法如下:

get_screenshot_as_file():截图

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')

# 截图,图片后缀最好为.png,如果是其他的执行的时候会有警告,但不会报错
driver.get_screenshot_as_file("D:\\baidu_index.png")

driver.quit()

实例:

#窗口截图操作
#coding utf-8

from selenium import webdriver
from time import sleep

driver = webdriver.Firefox()

url = "http://www.baidu.com"

driver.get(url)

driver.find_element_by_id('kw').send_keys('selenium python')
driver.find_element_by_id('su').click()

sleep(2)

driver.get_screenshot_as_file("D:\\baidu_error.jpg")

driver.quit()

运行结果:

有个warning,什么意思呢,就是说截图最好是使用 .png格式的图片,而我的代码中使用的是.jpg格式,但是,不影响最终结果

file type. It should end with a `.png` extension
  "type. It should end with a `.png` extension", UserWarning)  

网页截图: - 不出意外,渣度第一时间给你推送广告!!呵呵呵!-

Selenium文集传送门:

标题 简介
Python爬虫 - Selenium(1)安装和简单使用 详细介绍Selenium的依赖环境在Windows和Centos7上的安装及简单使用
Python爬虫 - Selenium(2)元素定位和WebDriver常用方法 详细介绍定位元素的8种方式并配合点击和输入、提交、获取断言信息等方法的使用
Python爬虫 - Selenium(3)控制浏览器的常用方法 详细介绍自定义浏览器窗口大小或全屏、控制浏览器后退、前进、刷新浏览器等方法的使用
Python爬虫 - Selenium(4)配置启动项参数 详细介绍Selenium启动项参数的配置,其中包括无界面模式、浏览器窗口大小设置、浏览器User-Agent (请求头)等等
Python爬虫 - Selenium(5)鼠标事件 详细介绍鼠标右击、双击、拖动、鼠标悬停等方法的使用
Python爬虫 - Selenium(6)键盘事件 详细介绍键盘的操作,几乎包含所有常用按键以及组合键
Python爬虫 - Selenium(7)多窗口切换 详细介绍Selenium是如何实现在不同的窗口之间自由切换
Python爬虫 - Selenium(8)frame/iframe表单嵌套页面 详细介绍如何从当前定位的主体切换为frame/iframe表单的内嵌页面中
Python爬虫 - Selenium(9)警告框(弹窗)处理 详细介绍如何定位并处理多类警告弹窗
Python爬虫 - Selenium(10)下拉框处理 详细介绍如何灵活的定位并处理下拉框
Python爬虫 - Selenium(11)文件上传 详细介绍如何优雅的通过send_keys()指定文件进行上传
Python爬虫 - Selenium(12)获取登录Cookies,并添加Cookies自动登录 详细介绍如何获取Cookies和使用Cookies进行自动登录
Python爬虫 - Selenium(13)设置元素等待 详细介绍如何优雅的设置元素等待时间,防止程序运行过快而导致元素定位失败
Python爬虫 - Selenium(14)窗口截图 详细介绍如何使用窗口截图
Python爬虫 - Selenium(15)关闭浏览器 详细介绍两种关闭窗口的区别

到此这篇关于Python爬虫之Selenium实现窗口截图的文章就介绍到这了,更多相关Selenium 窗口截图内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • java selenium 操作弹出窗口示例代码

    selenium 中如何处理弹出窗口 阅读目录 原理 测试页面的HTML Java 代码 原理 在代码里, 通过         Set<String> allWindowsId = driver.getWindowHandles(); 来获取到所有弹出浏览器的句柄,   然后遍历,  使用swithcto.window(newwindow_handle)方法. 就可以定位到新的窗口 测试页面的HTML <html> <head> <title>常见web

  • Python Selenium 之关闭窗口close与quit的方法

    selenium关闭窗口有两个方法,close与quit,我们稍作研究便知道这两个方法的区别. 1.看源码或API 这是close()的说明: Closes the current window. 关闭当前窗口. 这是quit()的说明: Quits the driver and closes every associated window. 退出驱动并关闭所有关联的窗口. 从这里就很明显的看出来这两个方法的区别,一个关闭当前窗口,一个关闭所有窗口,下面写一小段代码测试一下. 2.代码试验 代码

  • selenium python浏览器多窗口处理代码示例

    本文主要研究的是selenium python浏览器多窗口处理的相关内容,分享了操作实例代码,具体如下: #!/usr/bin/python # -*- coding: utf-8 -*- __author__ = 'zuoanvip' #在测试过程中有时候会遇到出现多个浏览器窗口的情况,这时候我们可以通过窗口的句柄来操作不同窗口的元素 from selenium import webdriver import os import time driver =webdriver.Firefox()

  • selenium 多窗口切换的实现(windows)

    在web应用中,常常会遇见点击某个链接会弹出一个新的窗口,或者是相互关联的web应用 ,这样要去操作新窗口中的元素,这时就需要主机切换到新窗口进行操作..WebDriver 提供了switchTo().window()方法可以实现在不同的窗口之间切换. 以下代码是以新浪网为实例.通过获取句柄切换到指定窗口,并关闭窗口.当然切换到指定窗口,也可以通过元素定位等方法对元素进行操作. getWindowHandle():获得当前窗口句柄. getWindowHandles():返回的所有窗口的句柄到当

  • selenium+python 去除启动的黑色cmd窗口方法

    其实 selenium启动窗口的时候就是 使用了subprocess.Popen 启动的驱动程序的,只要在启动的时候加上启动不显示窗口的参数即可. 下面魔改开始O(∩_∩)O哈哈~ 修改代码 位于 D:\Python35\Lib\site-packages\selenium\webdriver\common\service.py 主要是 Service类的start函数 def start(self): """ Starts the Service. :Exceptions:

  • python3 selenium 切换窗口的几种方法小结

    第一种方法: 使用场景: 打开多个窗口,需要定位到新打开的窗口 使用方法: # 获取打开的多个窗口句柄 windows = driver.window_handles # 切换到当前最新打开的窗口 driver.switch_to.window(windows[-1]) 举例说明: # _._ coding:utf-8 _._ """ :author: 花花测试 :time: 2017.05.03 :content: 使用第一种方法切换浏览器 ""&quo

  • Python+selenium 获取浏览器窗口坐标、句柄的方法

    1.0 获取浏览器窗口坐标 python目录可找到Webdriver.py 文件定义了get_window_rect()函数,可获取窗口的坐标和大小(长宽),但出现"Command not found"的情况.set_window_rect()函数也一样. def get_window_rect(self): """ Gets the x, y coordinates of the window as well as height and width of

  • selenium+python自动化测试之多窗口切换

    在很多页面上都有可点击的链接,点击这些链接会打开一个新的窗口,这时如果要在新打开的窗口中操作页面,就需要先切换到新窗口中,如果不进行切换操作,还是操作的上一个页面窗口 浏览器窗口的切换通过句柄(handle)来操作,每个窗口都有一个句柄,代表当前窗口,需要操作哪个页面的窗口,切换到窗口对应的句柄.通过driver.switch_to.window(handle)来切换句柄 在新的窗口中打开页面 打开百度首页,点击右上角的新闻链接,默认会在当前窗口中打开.现在通过修改点击元素的属性,让新打开的页面

  • Python爬虫之Selenium多窗口切换的实现

    前言:在页面操作过程中有时候点击某个链接会弹出新的窗口,但由于Selenium的所有操作都是在第一个打开的页面进行的,这时就需要主机切换到新打开的窗口上进行操作.WebDriver提供了switch_to.window()方法,可以实现在不同的窗口之间切换. 以百度首页和百度注册页为例,在两个窗口之间的切换. 本章中用到的关键方法如下: current_window_handle:获得当前窗口句柄 window_handles:返回所有窗口的句柄到当前会话 switch_to.window():

  • Java Selenium实现多窗口切换的示例代码

    在web应用中,常常会遇见点击某个链接会弹出一个新的窗口,或者是相互关联的web应用 ,这样要去操作新窗口中的元素,就需要主机切换到新窗口进行操作.WebDriver 提供了switchTo().window()方法可以实现在不同的窗口之间切换. 获取当前窗口浏览器句柄:driver.getWindowHandle(); 获取所有窗口的浏览器句柄到当前会话:driver.getWindowHandles(); 用于不同窗口的切换:switchTo().window(); 在页面操作过程中有时候点

随机推荐