python关闭浏览器窗口_Selenium3 + Python3自动化测试系列十二——窗口截图与关闭浏览器...

2023-11-02

窗口截图

自动化用例是由程序去执行的,因此有时候打印的错误信息并不十分明确。如果在脚本执行出错的时候能对当前窗口截图保存,那么通过图片就可以非常直观地看出出错的原因。WebDriver提供了截图函数get_screenshot_as_file()、save_screenshot()、get_screenshot_as_png、get_screenshot_as_base64四种方法来截取当前窗口。

get_screenshot_as_file()

该方式很简单,通过driver获取该方法,将截图要保存的路径写入就好,首先建立一个Picture文件夹目录,为了方便存储管理截图的图片。代码如下:

from selenium.webdriver importChromefrom time importsleep#访问百度

driver = Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")

driver.get("https://www.baidu.com/")

driver.find_element_by_id("kw").send_keys("selenium")

sleep(2)#保存图片至文件夹中

driver.get_screenshot_as_file("D:\\PythonProject\\Test\\Picture\\baidu.jpg")

driver.quit()

当我们运行上述程序时,我们发现有一个Warning警告,告诉我们建议保存图片时用”.png“格式保存,但不影响正常流程保存图片。如下图所示。

Warning警告提示如下:UserWarning: name used for saved screenshot does not match file type. It should end with a `.png` extension

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

优化一下用以.png格式保存图片。两次保存皆成功!

save_screenshot()

save_screenshot()使用方法与上述get_screenshot_as_file()差不多。我们直接来看实例。代码如下:

from selenium.webdriver importChromefrom time importsleep#访问百度

driver = Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")

driver.get("https://www.baidu.com/")

driver.find_element_by_id("kw").send_keys("selenium")

sleep(2)#save_screenshot保存图片

driver.save_screenshot("D:\\PythonProject\\Test\\Picture\\baidu2.png")

driver.quit()

get_screenshot_as_png和get_screenshot_as_base64

这两个平时并不常用,大家可大体了解一下。get_screenshot_as_png是获取二进制数据流,get_screenshot_as_base64是获取base64编码原始数据,实际工作实践中如遇到再总结整理。

关闭浏览器

WebDriver提供了两种quit()和close()方法,quit()是退出相关的驱动程序和关闭所有窗口,close()是用来关闭当前窗口。例多窗口的处理,在用例执行的过程中

打开了多个窗口,我们想要关闭其中的某个窗口,这时就要用到close()方法进行关闭了。

我们举个栗子看一下,close()与quit()有什么区别。代码如下:

from selenium.webdriver importChromefrom time importsleep#访问百度

driver = Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")

driver.get("https://www.jd.com/")#查看当前window handle

indexwindow =driver.current_window_handleprint(indexwindow)print('\n')

driver.find_element_by_link_text("家用电器").click()

sleep(2)#循环遍历找到第一个window,再打开一个“手机”页面

for handle indriver.window_handles:if handle ==indexwindow:

driver.find_element_by_link_text("手机").click()

sleep(2)#查看所有window handles

print(driver.window_handles)print('\n')#关闭当前窗口

driver.close()#查看现在的所有window handles,可看到只是关闭了最开始的一个window,其他两个window还在

print(driver.window_handles)print('\n')#关闭所有窗口,退出相关的驱动程序

driver.quit()

上述代码运行结果可看出close()只关闭了最开始打开的一个window,后面打开的两个仍在。如下图所示:

大家可以动手试试。亲自实践一下记忆更加深刻哦~~~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python关闭浏览器窗口_Selenium3 + Python3自动化测试系列十二——窗口截图与关闭浏览器... 的相关文章

  • Python智力问答小游戏

    Python智力问答小游戏 在这个Python智力问答小游戏中 我们将提供一系列问题 并编写代码来实现一个简单的问答游戏 玩家将被要求回答一些与Python编程相关的问题 并根据他们的回答来获得得分 让我们一起来创建这个有趣的游戏吧 首先
  • python: Call SQL Server Stored Procedure in Python

    sql script DROP TABLE InsuranceMoney GO create table InsuranceMoney ID INT IDENTITY 1 1 PRIMARY KEY InsuranceName nvarch
  • PCB中常用快捷键

    网络搜集 备份一份方便查看 PCB快速挖孔 T V B 绘制闭合区域后 直接选中所有线条 然后T V B 挖孔 AD布线 选定器件 框定到指定区域的快捷键 原理图框定指定模块后 按T S后跳到PCB自动回选中相关器件 然后按T O L划定一
  • 什么是面向对象编程?

    所有编程语言都提供抽象机制 汇编是语言是对底层机器的轻微抽象 命令式语言 FORTRAN BASIC C 是对底层机器的轻微抽象 他们所做的主要抽象仍然要求在解决问题基于计算机的结构 而不是所要解决问题的结构 程序员必须建立起机器模型和待解
  • 第三周 Python基本数据类型

    1 数字类型及操作 1 1整数类型 与数学中整数的概念一致 可正可负 没有取值范围限制 pow x y 函数 计算xy 想算多大算多大 gt gt gt 1267650600228229401496703205376 4种进制表示形式 十进
  • npm ERR network Invalid response body while trying to fetch

    问题描述 安装 vue cli 的时候持续报错 npm notice npm notice New minor version of npm available 8 5 0 gt 8 7 0 npm notice Changelog htt
  • 出现undefined reference to `forkpty' 错误解决方法

    出现undefined reference to forkpty 错误解决方法 2009 02 04 09 14 23 分类 C 举报 字号 订阅 下载LOFTER客户端 出错提示如下 usr lib lib libpython2 5 so
  • C语言是一种非结构化的程序设计语言,C语言程序设计——姜恒远 第一章 C程序设计概述.ppt...

    C语言程序设计 姜恒远 第一章 C程序设计概述 姜 恒 远 第1章 C程序设计概述 1 1 程序设计语言 程序与程序设计 1 1 1 程序设计语言 CPU能理解且能直接执行的指令集合 用机器语言编写的程序形式 用机器语言编写的程序优点 质量
  • 三、mock与umi-plugin-react插件

    一 Mock 数据 umi 里约定 mock 文件夹下的文件或者 page s 文件夹下的 mock 文件即 mock 文件 这个mock数据 默认导出的结果 前面为请求方式和请求的url 后面的为返回前端的结果 结果可以是函数 也可以是对
  • 在centos7上部署ZeroTier实现内网穿透

    https my zerotier com 登录账户后在ttps my zerotier com network创建网络 配置centos yum源 vi etc yum repos d zerotier repo zerotier nam
  • c++tuple和bitset

    tuple tuple是类似pair的模板 一个tuple可以有任意数量的成员 类型也可以不相同 make tuple 返回一个用给定初始值初始化的tuple 返回的tuple类型从初始值推断 可以使用 初始化但不能使用 tuple
  • Visual Studo Code & Anaconda环境配置

    在使用VScode的过程中 遇到如下问题 通过Anaconda安装的库文件在VScode中无法import 提示找不到该module 但在window的cmd中是可以import该库文件的 原因 环境配置问题 1 选择了错误的python解
  • 谈谈对于XSS跨站脚本攻击的学习(1)

    前言 最近学完XXE之后 对于这种恶意代码注入的漏洞提起来兴趣 想着现在正好趁热打铁 学习一下XSS 之前做题的时候看大师傅的wp一愣一愣的 不明白个所以然 这次系统的学习一下 在本文中将介绍有关XSS的知识点以及原理 也会介绍XSS的绕过
  • web前端期末大作业实例 (1500套) 集合

    文章目录 web前端期末大作业 1500套 集合 一 网页介绍 二 网页集合 表白网页 125套 集合 Echarts大屏数据展示 150套 集合 一 基于HTML Echarts技术制作 二 基于VUE Echarts技术制作 更多源码
  • 微信小程序腾讯位置服务添加不上去

    今天发现怎么添加都添加不上去 然后我搜索了大半天 emm最后都没有找到我的解决方法 然后终于我想起来他的报错提示 去搜了一下类目 然后去小程序添加了个交通类目 然后就好了
  • SOLO训练代码解析

    之前写过对SOLO demo的代码解析 今天来梳理一下training过程 首先是tools train py 这个文件是训练的开始 命令行运行的就是该文件 from mmdet apis import set random seed tr
  • Python使用国内镜像安装

    命令 pip install i 国内镜像地址 numpy 国内常用源镜像地址 清华 https pypi tuna tsinghua edu cn simple 阿里云 http mirrors aliyun com pypi simpl
  • JSON Web令牌(JWT)详解

    前言 今天要分享的知识是JWT 码字不易 转载请说明 目录 一 JWT出现的原因及工作原理 JWT是什么 为什么使用JWT JWT的工作原理 JWT组成 传统开发对资源的访问限制利用session完成图解 JWT所解决的问题及机制 JWT解
  • ReentrantLock 锁详解

    ReentrantLock 支持公平锁和非公平锁 可重入锁 ReentrantLock的底层是通过 AQS 链接 实现 一 BAT 大厂的面试题 1 什么是可重入 什么是可重入锁 它用来解决什么问题 2 ReentrantLock 的核心是

随机推荐